package com.ourteam.product.requirement.dao;

import net.dao.BaseQueryBean;
import net.dao.BaseWhereCriterion;
import net.dao.IDataAccessInterface;

import org.apache.commons.lang.StringUtils;

import java.util.Arrays;
import java.util.List;
import java.util.Map;


/**
 * Template Name : DAO查询对象
 * Template Version : 1
 * Template Last Modfiy Date : Sat Aug 19 10:06:32 CST 2017
 * Auto Generate Date : 2018-05-03 16:45:34
  * Warning ! This file will be overwrite when regenerate !
  *
 */
public class ProductIssueDAOQueryBean extends BaseQueryBean {
    public ProductIssueDAOQueryBean() {
        super();
    }

    public ProductIssueDAOQueryBean(BaseQueryBean aQueryBean) {
        super(aQueryBean);
    }

    public ProductIssueDAOQueryBean(BaseQueryBean aQueryBean,
        Map tableReplaceMap) {
        super(aQueryBean, tableReplaceMap);
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();

        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }

        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        return new Criteria(this);
    }

    public void addIdSelectProperty() {
        addIdSelectProperty("id");
    }

    public void addIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueDAO.Id, aAlias);
        } else {
            addSelectProperty(IProductIssueDAO.Id, "id");
        }
    }

    public void addProductDefineIdSelectProperty() {
        addProductDefineIdSelectProperty("productDefineId");
    }

    public void addProductDefineIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueDAO.ProductDefineId, aAlias);
        } else {
            addSelectProperty(IProductIssueDAO.ProductDefineId,
                "productDefineId");
        }
    }

    public void addProductVersionIdSelectProperty() {
        addProductVersionIdSelectProperty("productVersionId");
    }

    public void addProductVersionIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueDAO.ProductVersionId, aAlias);
        } else {
            addSelectProperty(IProductIssueDAO.ProductVersionId,
                "productVersionId");
        }
    }

    public void addIssueCodeSelectProperty() {
        addIssueCodeSelectProperty("issueCode");
    }

    public void addIssueCodeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueDAO.IssueCode, aAlias);
        } else {
            addSelectProperty(IProductIssueDAO.IssueCode, "issueCode");
        }
    }

    public void addIssueTypeSelectProperty() {
        addIssueTypeSelectProperty("issueType");
    }

    public void addIssueTypeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueDAO.IssueType, aAlias);
        } else {
            addSelectProperty(IProductIssueDAO.IssueType, "issueType");
        }
    }

    public void addIssueTitleSelectProperty() {
        addIssueTitleSelectProperty("issueTitle");
    }

    public void addIssueTitleSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueDAO.IssueTitle, aAlias);
        } else {
            addSelectProperty(IProductIssueDAO.IssueTitle, "issueTitle");
        }
    }

    public void addIssueContentSelectProperty() {
        addIssueContentSelectProperty("issueContent");
    }

    public void addIssueContentSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueDAO.IssueContent, aAlias);
        } else {
            addSelectProperty(IProductIssueDAO.IssueContent, "issueContent");
        }
    }

    public void addIssuePrioritySelectProperty() {
        addIssuePrioritySelectProperty("issuePriority");
    }

    public void addIssuePrioritySelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueDAO.IssuePriority, aAlias);
        } else {
            addSelectProperty(IProductIssueDAO.IssuePriority, "issuePriority");
        }
    }

    public void addSubmitUserIdSelectProperty() {
        addSubmitUserIdSelectProperty("submitUserId");
    }

    public void addSubmitUserIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueDAO.SubmitUserId, aAlias);
        } else {
            addSelectProperty(IProductIssueDAO.SubmitUserId, "submitUserId");
        }
    }

    public void addSubmitTimeSelectProperty() {
        addSubmitTimeSelectProperty("submitTime");
    }

    public void addSubmitTimeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueDAO.SubmitTime, aAlias);
        } else {
            addSelectProperty(IProductIssueDAO.SubmitTime, "submitTime");
        }
    }

    public void addAssignUserIdSelectProperty() {
        addAssignUserIdSelectProperty("assignUserId");
    }

    public void addAssignUserIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueDAO.AssignUserId, aAlias);
        } else {
            addSelectProperty(IProductIssueDAO.AssignUserId, "assignUserId");
        }
    }

    public void addAssignTimeSelectProperty() {
        addAssignTimeSelectProperty("assignTime");
    }

    public void addAssignTimeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueDAO.AssignTime, aAlias);
        } else {
            addSelectProperty(IProductIssueDAO.AssignTime, "assignTime");
        }
    }

    public void addPlanSolveTimeSelectProperty() {
        addPlanSolveTimeSelectProperty("planSolveTime");
    }

    public void addPlanSolveTimeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueDAO.PlanSolveTime, aAlias);
        } else {
            addSelectProperty(IProductIssueDAO.PlanSolveTime, "planSolveTime");
        }
    }

    public void addActualSolveTimeSelectProperty() {
        addActualSolveTimeSelectProperty("actualSolveTime");
    }

    public void addActualSolveTimeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueDAO.ActualSolveTime, aAlias);
        } else {
            addSelectProperty(IProductIssueDAO.ActualSolveTime,
                "actualSolveTime");
        }
    }

    public void addResolutionsSelectProperty() {
        addResolutionsSelectProperty("resolutions");
    }

    public void addResolutionsSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueDAO.Resolutions, aAlias);
        } else {
            addSelectProperty(IProductIssueDAO.Resolutions, "resolutions");
        }
    }

    public void addResolutionsRemarksSelectProperty() {
        addResolutionsRemarksSelectProperty("resolutionsRemarks");
    }

    public void addResolutionsRemarksSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueDAO.ResolutionsRemarks, aAlias);
        } else {
            addSelectProperty(IProductIssueDAO.ResolutionsRemarks,
                "resolutionsRemarks");
        }
    }

    public void addLastUpdateTimeSelectProperty() {
        addLastUpdateTimeSelectProperty("lastUpdateTime");
    }

    public void addLastUpdateTimeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueDAO.LastUpdateTime, aAlias);
        } else {
            addSelectProperty(IProductIssueDAO.LastUpdateTime, "lastUpdateTime");
        }
    }

    public void addLastUpdateUserIdSelectProperty() {
        addLastUpdateUserIdSelectProperty("lastUpdateUserId");
    }

    public void addLastUpdateUserIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueDAO.LastUpdateUserId, aAlias);
        } else {
            addSelectProperty(IProductIssueDAO.LastUpdateUserId,
                "lastUpdateUserId");
        }
    }

    public void addIssueNoteCountSelectProperty() {
        addIssueNoteCountSelectProperty("issueNoteCount");
    }

    public void addIssueNoteCountSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueDAO.IssueNoteCount, aAlias);
        } else {
            addSelectProperty(IProductIssueDAO.IssueNoteCount, "issueNoteCount");
        }
    }

    public void addIssueAttachCountSelectProperty() {
        addIssueAttachCountSelectProperty("issueAttachCount");
    }

    public void addIssueAttachCountSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueDAO.IssueAttachCount, aAlias);
        } else {
            addSelectProperty(IProductIssueDAO.IssueAttachCount,
                "issueAttachCount");
        }
    }

    public void addStatusSelectProperty() {
        addStatusSelectProperty("status");
    }

    public void addStatusSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueDAO.Status, aAlias);
        } else {
            addSelectProperty(IProductIssueDAO.Status, "status");
        }
    }

    public void addRemarksSelectProperty() {
        addRemarksSelectProperty("remarks");
    }

    public void addRemarksSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueDAO.Remarks, aAlias);
        } else {
            addSelectProperty(IProductIssueDAO.Remarks, "remarks");
        }
    }

    public void addCreatorIdSelectProperty() {
        addCreatorIdSelectProperty("creatorId");
    }

    public void addCreatorIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueDAO.CreatorId, aAlias);
        } else {
            addSelectProperty(IProductIssueDAO.CreatorId, "creatorId");
        }
    }

    public void addCreateTimeSelectProperty() {
        addCreateTimeSelectProperty("createTime");
    }

    public void addCreateTimeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueDAO.CreateTime, aAlias);
        } else {
            addSelectProperty(IProductIssueDAO.CreateTime, "createTime");
        }
    }

    public void addCreatorNameSelectProperty() {
        addCreatorNameSelectProperty("creatorName");
    }

    public void addCreatorNameSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueDAO.CreatorName, aAlias);
        } else {
            addSelectProperty(IProductIssueDAO.CreatorName, "creatorName");
        }
    }

    public void addCreatorPhotoSelectProperty() {
        addCreatorPhotoSelectProperty("creatorPhoto");
    }

    public void addCreatorPhotoSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueDAO.CreatorPhoto, aAlias);
        } else {
            addSelectProperty(IProductIssueDAO.CreatorPhoto, "creatorPhoto");
        }
    }

    public void addAllSelectProperties() {
        addIdSelectProperty();

        addProductDefineIdSelectProperty();

        addProductVersionIdSelectProperty();

        addIssueCodeSelectProperty();

        addIssueTypeSelectProperty();

        addIssueTitleSelectProperty();

        addIssueContentSelectProperty();

        addIssuePrioritySelectProperty();

        addSubmitUserIdSelectProperty();

        addSubmitTimeSelectProperty();

        addAssignUserIdSelectProperty();

        addAssignTimeSelectProperty();

        addPlanSolveTimeSelectProperty();

        addActualSolveTimeSelectProperty();

        addResolutionsSelectProperty();

        addResolutionsRemarksSelectProperty();

        addLastUpdateTimeSelectProperty();

        addLastUpdateUserIdSelectProperty();

        addIssueNoteCountSelectProperty();

        addIssueAttachCountSelectProperty();

        addStatusSelectProperty();

        addRemarksSelectProperty();

        addCreatorIdSelectProperty();

        addCreateTimeSelectProperty();

        addCreatorNameSelectProperty();

        addCreatorPhotoSelectProperty();
    }

    public static class Criteria extends BaseWhereCriterion<ProductIssueDAOQueryBean> {
        protected Criteria(ProductIssueDAOQueryBean aParentObject) {
            super(aParentObject);
        }

        public Criteria andIdIsNull() {
            addCriterion(IProductIssueDAO.Id + " is null");

            return this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion(IProductIssueDAO.Id + " is not null");

            return this;
        }

        public Criteria andIdIsNotEmpty() {
            addCriterion(IProductIssueDAO.Id + " is not null AND " +
                IProductIssueDAO.Id + " <> ''");

            return this;
        }

        public Criteria andIdIsEmpty() {
            addCriterion("(" + IProductIssueDAO.Id + " is null OR " +
                IProductIssueDAO.Id + " = '')");

            return this;
        }

        public Criteria andIdEqualTo(long value) {
            return andIdEqualTo(Long.valueOf(value));
        }

        public Criteria andIdEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueDAO.Id + " = ", value, "id");

            return this;
        }

        public Criteria andIdEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.Id);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.Id + " = ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdNotEqualTo(long value) {
            return andIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueDAO.Id + " <>", value, "id");

            return this;
        }

        public Criteria andIdNotEqualToOrIsNull(long value) {
            return andIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andIdNotEqualToOrIsNull(java.lang.Long value) {
            addCriterion(IProductIssueDAO.Id + " is null OR " +
                IProductIssueDAO.Id + " <>", value, "id");

            return this;
        }

        public Criteria andIdNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.Id);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.Id + " <> ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdGreaterThan(long value) {
            return andIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductIssueDAO.Id + " >", value, "id");

            return this;
        }

        public Criteria andIdGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.Id);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.Id + " > ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdGreaterThanOrEqualTo(long value) {
            return andIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andIdGreaterThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueDAO.Id + " >=", value, "id");

            return this;
        }

        public Criteria andIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.Id);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdGreaterThanOrEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.Id + " >= ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdLessThan(long value) {
            return andIdLessThan(Long.valueOf(value));
        }

        public Criteria andIdLessThan(java.lang.Long value) {
            addCriterion(IProductIssueDAO.Id + " <", value, "id");

            return this;
        }

        public Criteria andIdLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.Id);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.Id + " < ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdLessThanOrEqualTo(long value) {
            return andIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andIdLessThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueDAO.Id + " <=", value, "id");

            return this;
        }

        public Criteria andIdLessThanOrEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.Id);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdLessThanOrEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.Id + " <= ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdIn(long[] values) {
            if (values.length == 1) {
                return andIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductIssueDAO.Id + " in", values, "id");

                return this;
            }
        }

        public Criteria andIdNotIn(long[] values) {
            if (values.length == 1) {
                return andIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductIssueDAO.Id + " not in", values, "id");

                return this;
            }
        }

        public Criteria andIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.Id + " in", values, "id");

                return this;
            }
        }

        public Criteria andIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.Id + " not in", values, "id");

                return this;
            }
        }

        public Criteria andIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andIdEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.Id + " in",
                    Arrays.asList(values), "id");

                return this;
            }
        }

        public Criteria andIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.Id + " not in",
                    Arrays.asList(values), "id");

                return this;
            }
        }

        public Criteria andIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.Id + " in ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.Id + " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdBetween(long value1, long value2) {
            addCriterion(IProductIssueDAO.Id + " between", value1, value2, "id");

            return this;
        }

        public Criteria andIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductIssueDAO.Id + " between", value1, value2, "id");

            return this;
        }

        public Criteria andIdNotBetween(long value1, long value2) {
            addCriterion(IProductIssueDAO.Id + " not between", value1, value2,
                "id");

            return this;
        }

        public Criteria andIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductIssueDAO.Id + " not between", value1, value2,
                "id");

            return this;
        }

        public Criteria andProductDefineIdIsNull() {
            addCriterion(IProductIssueDAO.ProductDefineId + " is null");

            return this;
        }

        public Criteria andProductDefineIdIsNotNull() {
            addCriterion(IProductIssueDAO.ProductDefineId + " is not null");

            return this;
        }

        public Criteria andProductDefineIdIsNotEmpty() {
            addCriterion(IProductIssueDAO.ProductDefineId +
                " is not null AND " + IProductIssueDAO.ProductDefineId +
                " <> ''");

            return this;
        }

        public Criteria andProductDefineIdIsEmpty() {
            addCriterion("(" + IProductIssueDAO.ProductDefineId +
                " is null OR " + IProductIssueDAO.ProductDefineId + " = '')");

            return this;
        }

        public Criteria andProductDefineIdEqualTo(long value) {
            return andProductDefineIdEqualTo(Long.valueOf(value));
        }

        public Criteria andProductDefineIdEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueDAO.ProductDefineId + " = ", value,
                "productDefineId");

            return this;
        }

        public Criteria andProductDefineIdEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.ProductDefineId);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProductDefineIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.ProductDefineId + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProductDefineIdNotEqualTo(long value) {
            return andProductDefineIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andProductDefineIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueDAO.ProductDefineId + " <>", value,
                "productDefineId");

            return this;
        }

        public Criteria andProductDefineIdNotEqualToOrIsNull(long value) {
            return andProductDefineIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andProductDefineIdNotEqualToOrIsNull(
            java.lang.Long value) {
            addCriterion(IProductIssueDAO.ProductDefineId + " is null OR " +
                IProductIssueDAO.ProductDefineId + " <>", value,
                "productDefineId");

            return this;
        }

        public Criteria andProductDefineIdNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.ProductDefineId);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProductDefineIdNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.ProductDefineId + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProductDefineIdGreaterThan(long value) {
            return andProductDefineIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andProductDefineIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductIssueDAO.ProductDefineId + " >", value,
                "productDefineId");

            return this;
        }

        public Criteria andProductDefineIdGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.ProductDefineId);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProductDefineIdGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.ProductDefineId + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProductDefineIdGreaterThanOrEqualTo(long value) {
            return andProductDefineIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andProductDefineIdGreaterThanOrEqualTo(
            java.lang.Long value) {
            addCriterion(IProductIssueDAO.ProductDefineId + " >=", value,
                "productDefineId");

            return this;
        }

        public Criteria andProductDefineIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.ProductDefineId);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProductDefineIdGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.ProductDefineId + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProductDefineIdLessThan(long value) {
            return andProductDefineIdLessThan(Long.valueOf(value));
        }

        public Criteria andProductDefineIdLessThan(java.lang.Long value) {
            addCriterion(IProductIssueDAO.ProductDefineId + " <", value,
                "productDefineId");

            return this;
        }

        public Criteria andProductDefineIdLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.ProductDefineId);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProductDefineIdLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.ProductDefineId + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProductDefineIdLessThanOrEqualTo(long value) {
            return andProductDefineIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andProductDefineIdLessThanOrEqualTo(
            java.lang.Long value) {
            addCriterion(IProductIssueDAO.ProductDefineId + " <=", value,
                "productDefineId");

            return this;
        }

        public Criteria andProductDefineIdLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.ProductDefineId);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProductDefineIdLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.ProductDefineId + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProductDefineIdIn(long[] values) {
            if (values.length == 1) {
                return andProductDefineIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductIssueDAO.ProductDefineId + " in", values,
                    "productDefineId");

                return this;
            }
        }

        public Criteria andProductDefineIdNotIn(long[] values) {
            if (values.length == 1) {
                return andProductDefineIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductIssueDAO.ProductDefineId + " not in",
                    values, "productDefineId");

                return this;
            }
        }

        public Criteria andProductDefineIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andProductDefineIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.ProductDefineId + " in", values,
                    "productDefineId");

                return this;
            }
        }

        public Criteria andProductDefineIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andProductDefineIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.ProductDefineId + " not in",
                    values, "productDefineId");

                return this;
            }
        }

        public Criteria andProductDefineIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andProductDefineIdEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.ProductDefineId + " in",
                    Arrays.asList(values), "productDefineId");

                return this;
            }
        }

        public Criteria andProductDefineIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andProductDefineIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.ProductDefineId + " not in",
                    Arrays.asList(values), "productDefineId");

                return this;
            }
        }

        public Criteria andProductDefineIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.ProductDefineId + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProductDefineIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.ProductDefineId + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProductDefineIdBetween(long value1, long value2) {
            addCriterion(IProductIssueDAO.ProductDefineId + " between", value1,
                value2, "productDefineId");

            return this;
        }

        public Criteria andProductDefineIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductIssueDAO.ProductDefineId + " between", value1,
                value2, "productDefineId");

            return this;
        }

        public Criteria andProductDefineIdNotBetween(long value1, long value2) {
            addCriterion(IProductIssueDAO.ProductDefineId + " not between",
                value1, value2, "productDefineId");

            return this;
        }

        public Criteria andProductDefineIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductIssueDAO.ProductDefineId + " not between",
                value1, value2, "productDefineId");

            return this;
        }

        public Criteria andProductVersionIdIsNull() {
            addCriterion(IProductIssueDAO.ProductVersionId + " is null");

            return this;
        }

        public Criteria andProductVersionIdIsNotNull() {
            addCriterion(IProductIssueDAO.ProductVersionId + " is not null");

            return this;
        }

        public Criteria andProductVersionIdIsNotEmpty() {
            addCriterion(IProductIssueDAO.ProductVersionId +
                " is not null AND " + IProductIssueDAO.ProductVersionId +
                " <> ''");

            return this;
        }

        public Criteria andProductVersionIdIsEmpty() {
            addCriterion("(" + IProductIssueDAO.ProductVersionId +
                " is null OR " + IProductIssueDAO.ProductVersionId + " = '')");

            return this;
        }

        public Criteria andProductVersionIdEqualTo(long value) {
            return andProductVersionIdEqualTo(Long.valueOf(value));
        }

        public Criteria andProductVersionIdEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueDAO.ProductVersionId + " = ", value,
                "productVersionId");

            return this;
        }

        public Criteria andProductVersionIdEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.ProductVersionId);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProductVersionIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.ProductVersionId + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProductVersionIdNotEqualTo(long value) {
            return andProductVersionIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andProductVersionIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueDAO.ProductVersionId + " <>", value,
                "productVersionId");

            return this;
        }

        public Criteria andProductVersionIdNotEqualToOrIsNull(long value) {
            return andProductVersionIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andProductVersionIdNotEqualToOrIsNull(
            java.lang.Long value) {
            addCriterion(IProductIssueDAO.ProductVersionId + " is null OR " +
                IProductIssueDAO.ProductVersionId + " <>", value,
                "productVersionId");

            return this;
        }

        public Criteria andProductVersionIdNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.ProductVersionId);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProductVersionIdNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.ProductVersionId + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProductVersionIdGreaterThan(long value) {
            return andProductVersionIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andProductVersionIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductIssueDAO.ProductVersionId + " >", value,
                "productVersionId");

            return this;
        }

        public Criteria andProductVersionIdGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.ProductVersionId);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProductVersionIdGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.ProductVersionId + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProductVersionIdGreaterThanOrEqualTo(long value) {
            return andProductVersionIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andProductVersionIdGreaterThanOrEqualTo(
            java.lang.Long value) {
            addCriterion(IProductIssueDAO.ProductVersionId + " >=", value,
                "productVersionId");

            return this;
        }

        public Criteria andProductVersionIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.ProductVersionId);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProductVersionIdGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.ProductVersionId + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProductVersionIdLessThan(long value) {
            return andProductVersionIdLessThan(Long.valueOf(value));
        }

        public Criteria andProductVersionIdLessThan(java.lang.Long value) {
            addCriterion(IProductIssueDAO.ProductVersionId + " <", value,
                "productVersionId");

            return this;
        }

        public Criteria andProductVersionIdLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.ProductVersionId);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProductVersionIdLessThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.ProductVersionId + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProductVersionIdLessThanOrEqualTo(long value) {
            return andProductVersionIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andProductVersionIdLessThanOrEqualTo(
            java.lang.Long value) {
            addCriterion(IProductIssueDAO.ProductVersionId + " <=", value,
                "productVersionId");

            return this;
        }

        public Criteria andProductVersionIdLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.ProductVersionId);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProductVersionIdLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.ProductVersionId + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProductVersionIdIn(long[] values) {
            if (values.length == 1) {
                return andProductVersionIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductIssueDAO.ProductVersionId + " in", values,
                    "productVersionId");

                return this;
            }
        }

        public Criteria andProductVersionIdNotIn(long[] values) {
            if (values.length == 1) {
                return andProductVersionIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductIssueDAO.ProductVersionId + " not in",
                    values, "productVersionId");

                return this;
            }
        }

        public Criteria andProductVersionIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andProductVersionIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.ProductVersionId + " in", values,
                    "productVersionId");

                return this;
            }
        }

        public Criteria andProductVersionIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andProductVersionIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.ProductVersionId + " not in",
                    values, "productVersionId");

                return this;
            }
        }

        public Criteria andProductVersionIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andProductVersionIdEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.ProductVersionId + " in",
                    Arrays.asList(values), "productVersionId");

                return this;
            }
        }

        public Criteria andProductVersionIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andProductVersionIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.ProductVersionId + " not in",
                    Arrays.asList(values), "productVersionId");

                return this;
            }
        }

        public Criteria andProductVersionIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.ProductVersionId + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProductVersionIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.ProductVersionId + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProductVersionIdBetween(long value1, long value2) {
            addCriterion(IProductIssueDAO.ProductVersionId + " between",
                value1, value2, "productVersionId");

            return this;
        }

        public Criteria andProductVersionIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductIssueDAO.ProductVersionId + " between",
                value1, value2, "productVersionId");

            return this;
        }

        public Criteria andProductVersionIdNotBetween(long value1, long value2) {
            addCriterion(IProductIssueDAO.ProductVersionId + " not between",
                value1, value2, "productVersionId");

            return this;
        }

        public Criteria andProductVersionIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductIssueDAO.ProductVersionId + " not between",
                value1, value2, "productVersionId");

            return this;
        }

        public Criteria andIssueCodeIsNull() {
            addCriterion(IProductIssueDAO.IssueCode + " is null");

            return this;
        }

        public Criteria andIssueCodeIsNotNull() {
            addCriterion(IProductIssueDAO.IssueCode + " is not null");

            return this;
        }

        public Criteria andIssueCodeIsNotEmpty() {
            addCriterion(IProductIssueDAO.IssueCode + " is not null AND " +
                IProductIssueDAO.IssueCode + " <> ''");

            return this;
        }

        public Criteria andIssueCodeIsEmpty() {
            addCriterion("(" + IProductIssueDAO.IssueCode + " is null OR " +
                IProductIssueDAO.IssueCode + " = '')");

            return this;
        }

        public Criteria andIssueCodeEqualTo(String value) {
            addCriterion(IProductIssueDAO.IssueCode + " = ", value, "issueCode");

            return this;
        }

        public Criteria andIssueCodeEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssueCode);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueCodeEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueCode + " = ", subQueryBean, dao);

            return this;
        }

        public Criteria andIssueCodeNotEqualTo(String value) {
            addCriterion(IProductIssueDAO.IssueCode + " <>", value, "issueCode");

            return this;
        }

        public Criteria andIssueCodeNotEqualToOrIsNull(String value) {
            addCriterion(IProductIssueDAO.IssueCode + " is null OR " +
                IProductIssueDAO.IssueCode + " <>", value, "issueCode");

            return this;
        }

        public Criteria andIssueCodeNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssueCode);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueCodeNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueCode + " <> ", subQueryBean, dao);

            return this;
        }

        public Criteria andIssueCodeGreaterThan(String value) {
            addCriterion(IProductIssueDAO.IssueCode + " >", value, "issueCode");

            return this;
        }

        public Criteria andIssueCodeGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssueCode);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueCodeGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueCode + " > ", subQueryBean, dao);

            return this;
        }

        public Criteria andIssueCodeGreaterThanOrEqualTo(String value) {
            addCriterion(IProductIssueDAO.IssueCode + " >=", value, "issueCode");

            return this;
        }

        public Criteria andIssueCodeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssueCode);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueCodeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueCode + " >= ", subQueryBean, dao);

            return this;
        }

        public Criteria andIssueCodeLessThan(String value) {
            addCriterion(IProductIssueDAO.IssueCode + " <", value, "issueCode");

            return this;
        }

        public Criteria andIssueCodeLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssueCode);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueCodeLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueCode + " < ", subQueryBean, dao);

            return this;
        }

        public Criteria andIssueCodeLessThanOrEqualTo(String value) {
            addCriterion(IProductIssueDAO.IssueCode + " <=", value, "issueCode");

            return this;
        }

        public Criteria andIssueCodeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssueCode);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueCodeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueCode + " <= ", subQueryBean, dao);

            return this;
        }

        public Criteria andIssueCodeLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueDAO.IssueCode + " like",
                buffer.toString(), "issueCode");

            return this;
        }

        public Criteria andIssueCodeNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueDAO.IssueCode + " not like",
                buffer.toString(), "issueCode");

            return this;
        }

        public Criteria andIssueCodeIn(List<String> values) {
            if (values.size() == 1) {
                return andIssueCodeEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.IssueCode + " in", values,
                    "issueCode");

                return this;
            }
        }

        public Criteria andIssueCodeNotIn(List<String> values) {
            if (values.size() == 1) {
                return andIssueCodeNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.IssueCode + " not in", values,
                    "issueCode");

                return this;
            }
        }

        public Criteria andIssueCodeIn(String[] values) {
            if (values.length == 1) {
                return andIssueCodeEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.IssueCode + " in",
                    Arrays.asList(values), "issueCode");

                return this;
            }
        }

        public Criteria andIssueCodeNotIn(String[] values) {
            if (values.length == 1) {
                return andIssueCodeNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.IssueCode + " not in",
                    Arrays.asList(values), "issueCode");

                return this;
            }
        }

        public Criteria andIssueCodeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueCode + " in ", subQueryBean, dao);

            return this;
        }

        public Criteria andIssueCodeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueCode + " not in ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIssueCodeBetween(String value1, String value2) {
            addCriterion(IProductIssueDAO.IssueCode + " between", value1,
                value2, "issueCode");

            return this;
        }

        public Criteria andIssueCodeNotBetween(String value1, String value2) {
            addCriterion(IProductIssueDAO.IssueCode + " not between", value1,
                value2, "issueCode");

            return this;
        }

        public Criteria andIssueTypeIsNull() {
            addCriterion(IProductIssueDAO.IssueType + " is null");

            return this;
        }

        public Criteria andIssueTypeIsNotNull() {
            addCriterion(IProductIssueDAO.IssueType + " is not null");

            return this;
        }

        public Criteria andIssueTypeIsNotEmpty() {
            addCriterion(IProductIssueDAO.IssueType + " is not null AND " +
                IProductIssueDAO.IssueType + " <> ''");

            return this;
        }

        public Criteria andIssueTypeIsEmpty() {
            addCriterion("(" + IProductIssueDAO.IssueType + " is null OR " +
                IProductIssueDAO.IssueType + " = '')");

            return this;
        }

        public Criteria andIssueTypeEqualTo(String value) {
            addCriterion(IProductIssueDAO.IssueType + " = ", value, "issueType");

            return this;
        }

        public Criteria andIssueTypeEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssueType);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueTypeEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueType + " = ", subQueryBean, dao);

            return this;
        }

        public Criteria andIssueTypeNotEqualTo(String value) {
            addCriterion(IProductIssueDAO.IssueType + " <>", value, "issueType");

            return this;
        }

        public Criteria andIssueTypeNotEqualToOrIsNull(String value) {
            addCriterion(IProductIssueDAO.IssueType + " is null OR " +
                IProductIssueDAO.IssueType + " <>", value, "issueType");

            return this;
        }

        public Criteria andIssueTypeNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssueType);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueTypeNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueType + " <> ", subQueryBean, dao);

            return this;
        }

        public Criteria andIssueTypeGreaterThan(String value) {
            addCriterion(IProductIssueDAO.IssueType + " >", value, "issueType");

            return this;
        }

        public Criteria andIssueTypeGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssueType);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueTypeGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueType + " > ", subQueryBean, dao);

            return this;
        }

        public Criteria andIssueTypeGreaterThanOrEqualTo(String value) {
            addCriterion(IProductIssueDAO.IssueType + " >=", value, "issueType");

            return this;
        }

        public Criteria andIssueTypeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssueType);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueTypeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueType + " >= ", subQueryBean, dao);

            return this;
        }

        public Criteria andIssueTypeLessThan(String value) {
            addCriterion(IProductIssueDAO.IssueType + " <", value, "issueType");

            return this;
        }

        public Criteria andIssueTypeLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssueType);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueTypeLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueType + " < ", subQueryBean, dao);

            return this;
        }

        public Criteria andIssueTypeLessThanOrEqualTo(String value) {
            addCriterion(IProductIssueDAO.IssueType + " <=", value, "issueType");

            return this;
        }

        public Criteria andIssueTypeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssueType);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueTypeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueType + " <= ", subQueryBean, dao);

            return this;
        }

        public Criteria andIssueTypeLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueDAO.IssueType + " like",
                buffer.toString(), "issueType");

            return this;
        }

        public Criteria andIssueTypeNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueDAO.IssueType + " not like",
                buffer.toString(), "issueType");

            return this;
        }

        public Criteria andIssueTypeIn(List<String> values) {
            if (values.size() == 1) {
                return andIssueTypeEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.IssueType + " in", values,
                    "issueType");

                return this;
            }
        }

        public Criteria andIssueTypeNotIn(List<String> values) {
            if (values.size() == 1) {
                return andIssueTypeNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.IssueType + " not in", values,
                    "issueType");

                return this;
            }
        }

        public Criteria andIssueTypeIn(String[] values) {
            if (values.length == 1) {
                return andIssueTypeEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.IssueType + " in",
                    Arrays.asList(values), "issueType");

                return this;
            }
        }

        public Criteria andIssueTypeNotIn(String[] values) {
            if (values.length == 1) {
                return andIssueTypeNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.IssueType + " not in",
                    Arrays.asList(values), "issueType");

                return this;
            }
        }

        public Criteria andIssueTypeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueType + " in ", subQueryBean, dao);

            return this;
        }

        public Criteria andIssueTypeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueType + " not in ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIssueTypeBetween(String value1, String value2) {
            addCriterion(IProductIssueDAO.IssueType + " between", value1,
                value2, "issueType");

            return this;
        }

        public Criteria andIssueTypeNotBetween(String value1, String value2) {
            addCriterion(IProductIssueDAO.IssueType + " not between", value1,
                value2, "issueType");

            return this;
        }

        public Criteria andIssueTitleIsNull() {
            addCriterion(IProductIssueDAO.IssueTitle + " is null");

            return this;
        }

        public Criteria andIssueTitleIsNotNull() {
            addCriterion(IProductIssueDAO.IssueTitle + " is not null");

            return this;
        }

        public Criteria andIssueTitleIsNotEmpty() {
            addCriterion(IProductIssueDAO.IssueTitle + " is not null AND " +
                IProductIssueDAO.IssueTitle + " <> ''");

            return this;
        }

        public Criteria andIssueTitleIsEmpty() {
            addCriterion("(" + IProductIssueDAO.IssueTitle + " is null OR " +
                IProductIssueDAO.IssueTitle + " = '')");

            return this;
        }

        public Criteria andIssueTitleEqualTo(String value) {
            addCriterion(IProductIssueDAO.IssueTitle + " = ", value,
                "issueTitle");

            return this;
        }

        public Criteria andIssueTitleEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssueTitle);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueTitleEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueTitle + " = ", subQueryBean, dao);

            return this;
        }

        public Criteria andIssueTitleNotEqualTo(String value) {
            addCriterion(IProductIssueDAO.IssueTitle + " <>", value,
                "issueTitle");

            return this;
        }

        public Criteria andIssueTitleNotEqualToOrIsNull(String value) {
            addCriterion(IProductIssueDAO.IssueTitle + " is null OR " +
                IProductIssueDAO.IssueTitle + " <>", value, "issueTitle");

            return this;
        }

        public Criteria andIssueTitleNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssueTitle);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueTitleNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueTitle + " <> ", subQueryBean, dao);

            return this;
        }

        public Criteria andIssueTitleGreaterThan(String value) {
            addCriterion(IProductIssueDAO.IssueTitle + " >", value, "issueTitle");

            return this;
        }

        public Criteria andIssueTitleGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssueTitle);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueTitleGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueTitle + " > ", subQueryBean, dao);

            return this;
        }

        public Criteria andIssueTitleGreaterThanOrEqualTo(String value) {
            addCriterion(IProductIssueDAO.IssueTitle + " >=", value,
                "issueTitle");

            return this;
        }

        public Criteria andIssueTitleGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssueTitle);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueTitleGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueTitle + " >= ", subQueryBean, dao);

            return this;
        }

        public Criteria andIssueTitleLessThan(String value) {
            addCriterion(IProductIssueDAO.IssueTitle + " <", value, "issueTitle");

            return this;
        }

        public Criteria andIssueTitleLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssueTitle);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueTitleLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueTitle + " < ", subQueryBean, dao);

            return this;
        }

        public Criteria andIssueTitleLessThanOrEqualTo(String value) {
            addCriterion(IProductIssueDAO.IssueTitle + " <=", value,
                "issueTitle");

            return this;
        }

        public Criteria andIssueTitleLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssueTitle);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueTitleLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueTitle + " <= ", subQueryBean, dao);

            return this;
        }

        public Criteria andIssueTitleLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueDAO.IssueTitle + " like",
                buffer.toString(), "issueTitle");

            return this;
        }

        public Criteria andIssueTitleNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueDAO.IssueTitle + " not like",
                buffer.toString(), "issueTitle");

            return this;
        }

        public Criteria andIssueTitleIn(List<String> values) {
            if (values.size() == 1) {
                return andIssueTitleEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.IssueTitle + " in", values,
                    "issueTitle");

                return this;
            }
        }

        public Criteria andIssueTitleNotIn(List<String> values) {
            if (values.size() == 1) {
                return andIssueTitleNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.IssueTitle + " not in", values,
                    "issueTitle");

                return this;
            }
        }

        public Criteria andIssueTitleIn(String[] values) {
            if (values.length == 1) {
                return andIssueTitleEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.IssueTitle + " in",
                    Arrays.asList(values), "issueTitle");

                return this;
            }
        }

        public Criteria andIssueTitleNotIn(String[] values) {
            if (values.length == 1) {
                return andIssueTitleNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.IssueTitle + " not in",
                    Arrays.asList(values), "issueTitle");

                return this;
            }
        }

        public Criteria andIssueTitleIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueTitle + " in ", subQueryBean, dao);

            return this;
        }

        public Criteria andIssueTitleNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueTitle + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIssueTitleBetween(String value1, String value2) {
            addCriterion(IProductIssueDAO.IssueTitle + " between", value1,
                value2, "issueTitle");

            return this;
        }

        public Criteria andIssueTitleNotBetween(String value1, String value2) {
            addCriterion(IProductIssueDAO.IssueTitle + " not between", value1,
                value2, "issueTitle");

            return this;
        }

        public Criteria andIssueContentIsNull() {
            addCriterion(IProductIssueDAO.IssueContent + " is null");

            return this;
        }

        public Criteria andIssueContentIsNotNull() {
            addCriterion(IProductIssueDAO.IssueContent + " is not null");

            return this;
        }

        public Criteria andIssueContentIsNotEmpty() {
            addCriterion(IProductIssueDAO.IssueContent + " is not null AND " +
                IProductIssueDAO.IssueContent + " <> ''");

            return this;
        }

        public Criteria andIssueContentIsEmpty() {
            addCriterion("(" + IProductIssueDAO.IssueContent + " is null OR " +
                IProductIssueDAO.IssueContent + " = '')");

            return this;
        }

        public Criteria andIssueContentEqualTo(String value) {
            addCriterion(IProductIssueDAO.IssueContent + " = ", value,
                "issueContent");

            return this;
        }

        public Criteria andIssueContentEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssueContent);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueContentEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueContent + " = ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIssueContentNotEqualTo(String value) {
            addCriterion(IProductIssueDAO.IssueContent + " <>", value,
                "issueContent");

            return this;
        }

        public Criteria andIssueContentNotEqualToOrIsNull(String value) {
            addCriterion(IProductIssueDAO.IssueContent + " is null OR " +
                IProductIssueDAO.IssueContent + " <>", value, "issueContent");

            return this;
        }

        public Criteria andIssueContentNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssueContent);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueContentNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueContent + " <> ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIssueContentGreaterThan(String value) {
            addCriterion(IProductIssueDAO.IssueContent + " >", value,
                "issueContent");

            return this;
        }

        public Criteria andIssueContentGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssueContent);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueContentGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueContent + " > ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIssueContentGreaterThanOrEqualTo(String value) {
            addCriterion(IProductIssueDAO.IssueContent + " >=", value,
                "issueContent");

            return this;
        }

        public Criteria andIssueContentGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssueContent);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueContentGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueContent + " >= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIssueContentLessThan(String value) {
            addCriterion(IProductIssueDAO.IssueContent + " <", value,
                "issueContent");

            return this;
        }

        public Criteria andIssueContentLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssueContent);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueContentLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueContent + " < ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIssueContentLessThanOrEqualTo(String value) {
            addCriterion(IProductIssueDAO.IssueContent + " <=", value,
                "issueContent");

            return this;
        }

        public Criteria andIssueContentLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssueContent);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueContentLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueContent + " <= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIssueContentLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueDAO.IssueContent + " like",
                buffer.toString(), "issueContent");

            return this;
        }

        public Criteria andIssueContentNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueDAO.IssueContent + " not like",
                buffer.toString(), "issueContent");

            return this;
        }

        public Criteria andIssueContentIn(List<String> values) {
            if (values.size() == 1) {
                return andIssueContentEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.IssueContent + " in", values,
                    "issueContent");

                return this;
            }
        }

        public Criteria andIssueContentNotIn(List<String> values) {
            if (values.size() == 1) {
                return andIssueContentNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.IssueContent + " not in", values,
                    "issueContent");

                return this;
            }
        }

        public Criteria andIssueContentIn(String[] values) {
            if (values.length == 1) {
                return andIssueContentEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.IssueContent + " in",
                    Arrays.asList(values), "issueContent");

                return this;
            }
        }

        public Criteria andIssueContentNotIn(String[] values) {
            if (values.length == 1) {
                return andIssueContentNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.IssueContent + " not in",
                    Arrays.asList(values), "issueContent");

                return this;
            }
        }

        public Criteria andIssueContentIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueContent + " in ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIssueContentNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueContent + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIssueContentBetween(String value1, String value2) {
            addCriterion(IProductIssueDAO.IssueContent + " between", value1,
                value2, "issueContent");

            return this;
        }

        public Criteria andIssueContentNotBetween(String value1, String value2) {
            addCriterion(IProductIssueDAO.IssueContent + " not between",
                value1, value2, "issueContent");

            return this;
        }

        public Criteria andIssuePriorityIsNull() {
            addCriterion(IProductIssueDAO.IssuePriority + " is null");

            return this;
        }

        public Criteria andIssuePriorityIsNotNull() {
            addCriterion(IProductIssueDAO.IssuePriority + " is not null");

            return this;
        }

        public Criteria andIssuePriorityIsNotEmpty() {
            addCriterion(IProductIssueDAO.IssuePriority + " is not null AND " +
                IProductIssueDAO.IssuePriority + " <> ''");

            return this;
        }

        public Criteria andIssuePriorityIsEmpty() {
            addCriterion("(" + IProductIssueDAO.IssuePriority + " is null OR " +
                IProductIssueDAO.IssuePriority + " = '')");

            return this;
        }

        public Criteria andIssuePriorityEqualTo(String value) {
            addCriterion(IProductIssueDAO.IssuePriority + " = ", value,
                "issuePriority");

            return this;
        }

        public Criteria andIssuePriorityEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssuePriority);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssuePriorityEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssuePriority + " = ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIssuePriorityNotEqualTo(String value) {
            addCriterion(IProductIssueDAO.IssuePriority + " <>", value,
                "issuePriority");

            return this;
        }

        public Criteria andIssuePriorityNotEqualToOrIsNull(String value) {
            addCriterion(IProductIssueDAO.IssuePriority + " is null OR " +
                IProductIssueDAO.IssuePriority + " <>", value, "issuePriority");

            return this;
        }

        public Criteria andIssuePriorityNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssuePriority);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssuePriorityNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssuePriority + " <> ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIssuePriorityGreaterThan(String value) {
            addCriterion(IProductIssueDAO.IssuePriority + " >", value,
                "issuePriority");

            return this;
        }

        public Criteria andIssuePriorityGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssuePriority);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssuePriorityGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssuePriority + " > ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIssuePriorityGreaterThanOrEqualTo(String value) {
            addCriterion(IProductIssueDAO.IssuePriority + " >=", value,
                "issuePriority");

            return this;
        }

        public Criteria andIssuePriorityGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssuePriority);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssuePriorityGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssuePriority + " >= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIssuePriorityLessThan(String value) {
            addCriterion(IProductIssueDAO.IssuePriority + " <", value,
                "issuePriority");

            return this;
        }

        public Criteria andIssuePriorityLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssuePriority);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssuePriorityLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssuePriority + " < ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIssuePriorityLessThanOrEqualTo(String value) {
            addCriterion(IProductIssueDAO.IssuePriority + " <=", value,
                "issuePriority");

            return this;
        }

        public Criteria andIssuePriorityLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssuePriority);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssuePriorityLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssuePriority + " <= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIssuePriorityLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueDAO.IssuePriority + " like",
                buffer.toString(), "issuePriority");

            return this;
        }

        public Criteria andIssuePriorityNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueDAO.IssuePriority + " not like",
                buffer.toString(), "issuePriority");

            return this;
        }

        public Criteria andIssuePriorityIn(List<String> values) {
            if (values.size() == 1) {
                return andIssuePriorityEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.IssuePriority + " in", values,
                    "issuePriority");

                return this;
            }
        }

        public Criteria andIssuePriorityNotIn(List<String> values) {
            if (values.size() == 1) {
                return andIssuePriorityNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.IssuePriority + " not in",
                    values, "issuePriority");

                return this;
            }
        }

        public Criteria andIssuePriorityIn(String[] values) {
            if (values.length == 1) {
                return andIssuePriorityEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.IssuePriority + " in",
                    Arrays.asList(values), "issuePriority");

                return this;
            }
        }

        public Criteria andIssuePriorityNotIn(String[] values) {
            if (values.length == 1) {
                return andIssuePriorityNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.IssuePriority + " not in",
                    Arrays.asList(values), "issuePriority");

                return this;
            }
        }

        public Criteria andIssuePriorityIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssuePriority + " in ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIssuePriorityNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssuePriority + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIssuePriorityBetween(String value1, String value2) {
            addCriterion(IProductIssueDAO.IssuePriority + " between", value1,
                value2, "issuePriority");

            return this;
        }

        public Criteria andIssuePriorityNotBetween(String value1, String value2) {
            addCriterion(IProductIssueDAO.IssuePriority + " not between",
                value1, value2, "issuePriority");

            return this;
        }

        public Criteria andSubmitUserIdIsNull() {
            addCriterion(IProductIssueDAO.SubmitUserId + " is null");

            return this;
        }

        public Criteria andSubmitUserIdIsNotNull() {
            addCriterion(IProductIssueDAO.SubmitUserId + " is not null");

            return this;
        }

        public Criteria andSubmitUserIdIsNotEmpty() {
            addCriterion(IProductIssueDAO.SubmitUserId + " is not null AND " +
                IProductIssueDAO.SubmitUserId + " <> ''");

            return this;
        }

        public Criteria andSubmitUserIdIsEmpty() {
            addCriterion("(" + IProductIssueDAO.SubmitUserId + " is null OR " +
                IProductIssueDAO.SubmitUserId + " = '')");

            return this;
        }

        public Criteria andSubmitUserIdEqualTo(long value) {
            return andSubmitUserIdEqualTo(Long.valueOf(value));
        }

        public Criteria andSubmitUserIdEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueDAO.SubmitUserId + " = ", value,
                "submitUserId");

            return this;
        }

        public Criteria andSubmitUserIdEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.SubmitUserId);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSubmitUserIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.SubmitUserId + " = ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andSubmitUserIdNotEqualTo(long value) {
            return andSubmitUserIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andSubmitUserIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueDAO.SubmitUserId + " <>", value,
                "submitUserId");

            return this;
        }

        public Criteria andSubmitUserIdNotEqualToOrIsNull(long value) {
            return andSubmitUserIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andSubmitUserIdNotEqualToOrIsNull(java.lang.Long value) {
            addCriterion(IProductIssueDAO.SubmitUserId + " is null OR " +
                IProductIssueDAO.SubmitUserId + " <>", value, "submitUserId");

            return this;
        }

        public Criteria andSubmitUserIdNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.SubmitUserId);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSubmitUserIdNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.SubmitUserId + " <> ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andSubmitUserIdGreaterThan(long value) {
            return andSubmitUserIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andSubmitUserIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductIssueDAO.SubmitUserId + " >", value,
                "submitUserId");

            return this;
        }

        public Criteria andSubmitUserIdGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.SubmitUserId);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSubmitUserIdGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.SubmitUserId + " > ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andSubmitUserIdGreaterThanOrEqualTo(long value) {
            return andSubmitUserIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andSubmitUserIdGreaterThanOrEqualTo(
            java.lang.Long value) {
            addCriterion(IProductIssueDAO.SubmitUserId + " >=", value,
                "submitUserId");

            return this;
        }

        public Criteria andSubmitUserIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.SubmitUserId);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSubmitUserIdGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.SubmitUserId + " >= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andSubmitUserIdLessThan(long value) {
            return andSubmitUserIdLessThan(Long.valueOf(value));
        }

        public Criteria andSubmitUserIdLessThan(java.lang.Long value) {
            addCriterion(IProductIssueDAO.SubmitUserId + " <", value,
                "submitUserId");

            return this;
        }

        public Criteria andSubmitUserIdLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.SubmitUserId);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSubmitUserIdLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.SubmitUserId + " < ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andSubmitUserIdLessThanOrEqualTo(long value) {
            return andSubmitUserIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andSubmitUserIdLessThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueDAO.SubmitUserId + " <=", value,
                "submitUserId");

            return this;
        }

        public Criteria andSubmitUserIdLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.SubmitUserId);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSubmitUserIdLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.SubmitUserId + " <= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andSubmitUserIdIn(long[] values) {
            if (values.length == 1) {
                return andSubmitUserIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductIssueDAO.SubmitUserId + " in", values,
                    "submitUserId");

                return this;
            }
        }

        public Criteria andSubmitUserIdNotIn(long[] values) {
            if (values.length == 1) {
                return andSubmitUserIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductIssueDAO.SubmitUserId + " not in", values,
                    "submitUserId");

                return this;
            }
        }

        public Criteria andSubmitUserIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andSubmitUserIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.SubmitUserId + " in", values,
                    "submitUserId");

                return this;
            }
        }

        public Criteria andSubmitUserIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andSubmitUserIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.SubmitUserId + " not in", values,
                    "submitUserId");

                return this;
            }
        }

        public Criteria andSubmitUserIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andSubmitUserIdEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.SubmitUserId + " in",
                    Arrays.asList(values), "submitUserId");

                return this;
            }
        }

        public Criteria andSubmitUserIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andSubmitUserIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.SubmitUserId + " not in",
                    Arrays.asList(values), "submitUserId");

                return this;
            }
        }

        public Criteria andSubmitUserIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.SubmitUserId + " in ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andSubmitUserIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.SubmitUserId + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSubmitUserIdBetween(long value1, long value2) {
            addCriterion(IProductIssueDAO.SubmitUserId + " between", value1,
                value2, "submitUserId");

            return this;
        }

        public Criteria andSubmitUserIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductIssueDAO.SubmitUserId + " between", value1,
                value2, "submitUserId");

            return this;
        }

        public Criteria andSubmitUserIdNotBetween(long value1, long value2) {
            addCriterion(IProductIssueDAO.SubmitUserId + " not between",
                value1, value2, "submitUserId");

            return this;
        }

        public Criteria andSubmitUserIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductIssueDAO.SubmitUserId + " not between",
                value1, value2, "submitUserId");

            return this;
        }

        public Criteria andSubmitTimeIsNull() {
            addCriterion(IProductIssueDAO.SubmitTime + " is null");

            return this;
        }

        public Criteria andSubmitTimeIsNotNull() {
            addCriterion(IProductIssueDAO.SubmitTime + " is not null");

            return this;
        }

        public Criteria andSubmitTimeIsNotEmpty() {
            addCriterion(IProductIssueDAO.SubmitTime + " is not null AND " +
                IProductIssueDAO.SubmitTime + " <> ''");

            return this;
        }

        public Criteria andSubmitTimeIsEmpty() {
            addCriterion("(" + IProductIssueDAO.SubmitTime + " is null OR " +
                IProductIssueDAO.SubmitTime + " = '')");

            return this;
        }

        public Criteria andSubmitTimeEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.SubmitTime + " = ", value,
                "submitTime");

            return this;
        }

        public Criteria andSubmitTimeEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.SubmitTime);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSubmitTimeEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.SubmitTime + " = ", subQueryBean, dao);

            return this;
        }

        public Criteria andSubmitTimeNotEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.SubmitTime + " <>", value,
                "submitTime");

            return this;
        }

        public Criteria andSubmitTimeNotEqualToOrIsNull(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.SubmitTime +
                " is null OR " + IProductIssueDAO.SubmitTime + " <>", value,
                "submitTime");

            return this;
        }

        public Criteria andSubmitTimeNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.SubmitTime);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSubmitTimeNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.SubmitTime + " <> ", subQueryBean, dao);

            return this;
        }

        public Criteria andSubmitTimeGreaterThan(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.SubmitTime + " >", value,
                "submitTime");

            return this;
        }

        public Criteria andSubmitTimeGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.SubmitTime);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSubmitTimeGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.SubmitTime + " > ", subQueryBean, dao);

            return this;
        }

        public Criteria andSubmitTimeGreaterThanOrEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.SubmitTime + " >=", value,
                "submitTime");

            return this;
        }

        public Criteria andSubmitTimeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.SubmitTime);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSubmitTimeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.SubmitTime + " >= ", subQueryBean, dao);

            return this;
        }

        public Criteria andSubmitTimeLessThan(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.SubmitTime + " <", value,
                "submitTime");

            return this;
        }

        public Criteria andSubmitTimeLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.SubmitTime);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSubmitTimeLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.SubmitTime + " < ", subQueryBean, dao);

            return this;
        }

        public Criteria andSubmitTimeLessThanOrEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.SubmitTime + " <=", value,
                "submitTime");

            return this;
        }

        public Criteria andSubmitTimeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.SubmitTime);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSubmitTimeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.SubmitTime + " <= ", subQueryBean, dao);

            return this;
        }

        public Criteria andSubmitTimeIn(List<java.util.Date> values) {
            if (values.size() == 1) {
                return andSubmitTimeEqualTo(values.get(0));
            } else {
                addCriterionForJDBCDate(IProductIssueDAO.SubmitTime + " in",
                    values, "submitTime");

                return this;
            }
        }

        public Criteria andSubmitTimeNotIn(List<java.util.Date> values) {
            if (values.size() == 1) {
                return andSubmitTimeNotEqualTo(values.get(0));
            } else {
                addCriterionForJDBCDate(IProductIssueDAO.SubmitTime +
                    " not in", values, "submitTime");

                return this;
            }
        }

        public Criteria andSubmitTimeIn(java.util.Date[] values) {
            if (values.length == 1) {
                return andSubmitTimeEqualTo(values[0]);
            } else {
                addCriterionForJDBCDate(IProductIssueDAO.SubmitTime + " in",
                    Arrays.asList(values), "submitTime");

                return this;
            }
        }

        public Criteria andSubmitTimeNotIn(java.util.Date[] values) {
            if (values.length == 1) {
                return andSubmitTimeNotEqualTo(values[0]);
            } else {
                addCriterionForJDBCDate(IProductIssueDAO.SubmitTime +
                    " not in", Arrays.asList(values), "submitTime");

                return this;
            }
        }

        public Criteria andSubmitTimeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.SubmitTime + " in ", subQueryBean, dao);

            return this;
        }

        public Criteria andSubmitTimeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.SubmitTime + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSubmitTimeBetween(java.util.Date value1,
            java.util.Date value2) {
            addCriterionForJDBCDate(IProductIssueDAO.SubmitTime + " between",
                value1, value2, "submitTime");

            return this;
        }

        public Criteria andSubmitTimeNotBetween(java.util.Date value1,
            java.util.Date value2) {
            addCriterionForJDBCDate(IProductIssueDAO.SubmitTime +
                " not between", value1, value2, "submitTime");

            return this;
        }

        public Criteria andAssignUserIdIsNull() {
            addCriterion(IProductIssueDAO.AssignUserId + " is null");

            return this;
        }

        public Criteria andAssignUserIdIsNotNull() {
            addCriterion(IProductIssueDAO.AssignUserId + " is not null");

            return this;
        }

        public Criteria andAssignUserIdIsNotEmpty() {
            addCriterion(IProductIssueDAO.AssignUserId + " is not null AND " +
                IProductIssueDAO.AssignUserId + " <> ''");

            return this;
        }

        public Criteria andAssignUserIdIsEmpty() {
            addCriterion("(" + IProductIssueDAO.AssignUserId + " is null OR " +
                IProductIssueDAO.AssignUserId + " = '')");

            return this;
        }

        public Criteria andAssignUserIdEqualTo(long value) {
            return andAssignUserIdEqualTo(Long.valueOf(value));
        }

        public Criteria andAssignUserIdEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueDAO.AssignUserId + " = ", value,
                "assignUserId");

            return this;
        }

        public Criteria andAssignUserIdEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.AssignUserId);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andAssignUserIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.AssignUserId + " = ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andAssignUserIdNotEqualTo(long value) {
            return andAssignUserIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andAssignUserIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueDAO.AssignUserId + " <>", value,
                "assignUserId");

            return this;
        }

        public Criteria andAssignUserIdNotEqualToOrIsNull(long value) {
            return andAssignUserIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andAssignUserIdNotEqualToOrIsNull(java.lang.Long value) {
            addCriterion(IProductIssueDAO.AssignUserId + " is null OR " +
                IProductIssueDAO.AssignUserId + " <>", value, "assignUserId");

            return this;
        }

        public Criteria andAssignUserIdNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.AssignUserId);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andAssignUserIdNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.AssignUserId + " <> ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andAssignUserIdGreaterThan(long value) {
            return andAssignUserIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andAssignUserIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductIssueDAO.AssignUserId + " >", value,
                "assignUserId");

            return this;
        }

        public Criteria andAssignUserIdGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.AssignUserId);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andAssignUserIdGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.AssignUserId + " > ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andAssignUserIdGreaterThanOrEqualTo(long value) {
            return andAssignUserIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andAssignUserIdGreaterThanOrEqualTo(
            java.lang.Long value) {
            addCriterion(IProductIssueDAO.AssignUserId + " >=", value,
                "assignUserId");

            return this;
        }

        public Criteria andAssignUserIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.AssignUserId);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andAssignUserIdGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.AssignUserId + " >= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andAssignUserIdLessThan(long value) {
            return andAssignUserIdLessThan(Long.valueOf(value));
        }

        public Criteria andAssignUserIdLessThan(java.lang.Long value) {
            addCriterion(IProductIssueDAO.AssignUserId + " <", value,
                "assignUserId");

            return this;
        }

        public Criteria andAssignUserIdLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.AssignUserId);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andAssignUserIdLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.AssignUserId + " < ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andAssignUserIdLessThanOrEqualTo(long value) {
            return andAssignUserIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andAssignUserIdLessThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueDAO.AssignUserId + " <=", value,
                "assignUserId");

            return this;
        }

        public Criteria andAssignUserIdLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.AssignUserId);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andAssignUserIdLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.AssignUserId + " <= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andAssignUserIdIn(long[] values) {
            if (values.length == 1) {
                return andAssignUserIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductIssueDAO.AssignUserId + " in", values,
                    "assignUserId");

                return this;
            }
        }

        public Criteria andAssignUserIdNotIn(long[] values) {
            if (values.length == 1) {
                return andAssignUserIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductIssueDAO.AssignUserId + " not in", values,
                    "assignUserId");

                return this;
            }
        }

        public Criteria andAssignUserIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andAssignUserIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.AssignUserId + " in", values,
                    "assignUserId");

                return this;
            }
        }

        public Criteria andAssignUserIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andAssignUserIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.AssignUserId + " not in", values,
                    "assignUserId");

                return this;
            }
        }

        public Criteria andAssignUserIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andAssignUserIdEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.AssignUserId + " in",
                    Arrays.asList(values), "assignUserId");

                return this;
            }
        }

        public Criteria andAssignUserIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andAssignUserIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.AssignUserId + " not in",
                    Arrays.asList(values), "assignUserId");

                return this;
            }
        }

        public Criteria andAssignUserIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.AssignUserId + " in ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andAssignUserIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.AssignUserId + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andAssignUserIdBetween(long value1, long value2) {
            addCriterion(IProductIssueDAO.AssignUserId + " between", value1,
                value2, "assignUserId");

            return this;
        }

        public Criteria andAssignUserIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductIssueDAO.AssignUserId + " between", value1,
                value2, "assignUserId");

            return this;
        }

        public Criteria andAssignUserIdNotBetween(long value1, long value2) {
            addCriterion(IProductIssueDAO.AssignUserId + " not between",
                value1, value2, "assignUserId");

            return this;
        }

        public Criteria andAssignUserIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductIssueDAO.AssignUserId + " not between",
                value1, value2, "assignUserId");

            return this;
        }

        public Criteria andAssignTimeIsNull() {
            addCriterion(IProductIssueDAO.AssignTime + " is null");

            return this;
        }

        public Criteria andAssignTimeIsNotNull() {
            addCriterion(IProductIssueDAO.AssignTime + " is not null");

            return this;
        }

        public Criteria andAssignTimeIsNotEmpty() {
            addCriterion(IProductIssueDAO.AssignTime + " is not null AND " +
                IProductIssueDAO.AssignTime + " <> ''");

            return this;
        }

        public Criteria andAssignTimeIsEmpty() {
            addCriterion("(" + IProductIssueDAO.AssignTime + " is null OR " +
                IProductIssueDAO.AssignTime + " = '')");

            return this;
        }

        public Criteria andAssignTimeEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.AssignTime + " = ", value,
                "assignTime");

            return this;
        }

        public Criteria andAssignTimeEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.AssignTime);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andAssignTimeEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.AssignTime + " = ", subQueryBean, dao);

            return this;
        }

        public Criteria andAssignTimeNotEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.AssignTime + " <>", value,
                "assignTime");

            return this;
        }

        public Criteria andAssignTimeNotEqualToOrIsNull(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.AssignTime +
                " is null OR " + IProductIssueDAO.AssignTime + " <>", value,
                "assignTime");

            return this;
        }

        public Criteria andAssignTimeNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.AssignTime);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andAssignTimeNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.AssignTime + " <> ", subQueryBean, dao);

            return this;
        }

        public Criteria andAssignTimeGreaterThan(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.AssignTime + " >", value,
                "assignTime");

            return this;
        }

        public Criteria andAssignTimeGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.AssignTime);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andAssignTimeGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.AssignTime + " > ", subQueryBean, dao);

            return this;
        }

        public Criteria andAssignTimeGreaterThanOrEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.AssignTime + " >=", value,
                "assignTime");

            return this;
        }

        public Criteria andAssignTimeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.AssignTime);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andAssignTimeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.AssignTime + " >= ", subQueryBean, dao);

            return this;
        }

        public Criteria andAssignTimeLessThan(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.AssignTime + " <", value,
                "assignTime");

            return this;
        }

        public Criteria andAssignTimeLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.AssignTime);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andAssignTimeLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.AssignTime + " < ", subQueryBean, dao);

            return this;
        }

        public Criteria andAssignTimeLessThanOrEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.AssignTime + " <=", value,
                "assignTime");

            return this;
        }

        public Criteria andAssignTimeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.AssignTime);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andAssignTimeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.AssignTime + " <= ", subQueryBean, dao);

            return this;
        }

        public Criteria andAssignTimeIn(List<java.util.Date> values) {
            if (values.size() == 1) {
                return andAssignTimeEqualTo(values.get(0));
            } else {
                addCriterionForJDBCDate(IProductIssueDAO.AssignTime + " in",
                    values, "assignTime");

                return this;
            }
        }

        public Criteria andAssignTimeNotIn(List<java.util.Date> values) {
            if (values.size() == 1) {
                return andAssignTimeNotEqualTo(values.get(0));
            } else {
                addCriterionForJDBCDate(IProductIssueDAO.AssignTime +
                    " not in", values, "assignTime");

                return this;
            }
        }

        public Criteria andAssignTimeIn(java.util.Date[] values) {
            if (values.length == 1) {
                return andAssignTimeEqualTo(values[0]);
            } else {
                addCriterionForJDBCDate(IProductIssueDAO.AssignTime + " in",
                    Arrays.asList(values), "assignTime");

                return this;
            }
        }

        public Criteria andAssignTimeNotIn(java.util.Date[] values) {
            if (values.length == 1) {
                return andAssignTimeNotEqualTo(values[0]);
            } else {
                addCriterionForJDBCDate(IProductIssueDAO.AssignTime +
                    " not in", Arrays.asList(values), "assignTime");

                return this;
            }
        }

        public Criteria andAssignTimeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.AssignTime + " in ", subQueryBean, dao);

            return this;
        }

        public Criteria andAssignTimeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.AssignTime + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andAssignTimeBetween(java.util.Date value1,
            java.util.Date value2) {
            addCriterionForJDBCDate(IProductIssueDAO.AssignTime + " between",
                value1, value2, "assignTime");

            return this;
        }

        public Criteria andAssignTimeNotBetween(java.util.Date value1,
            java.util.Date value2) {
            addCriterionForJDBCDate(IProductIssueDAO.AssignTime +
                " not between", value1, value2, "assignTime");

            return this;
        }

        public Criteria andPlanSolveTimeIsNull() {
            addCriterion(IProductIssueDAO.PlanSolveTime + " is null");

            return this;
        }

        public Criteria andPlanSolveTimeIsNotNull() {
            addCriterion(IProductIssueDAO.PlanSolveTime + " is not null");

            return this;
        }

        public Criteria andPlanSolveTimeIsNotEmpty() {
            addCriterion(IProductIssueDAO.PlanSolveTime + " is not null AND " +
                IProductIssueDAO.PlanSolveTime + " <> ''");

            return this;
        }

        public Criteria andPlanSolveTimeIsEmpty() {
            addCriterion("(" + IProductIssueDAO.PlanSolveTime + " is null OR " +
                IProductIssueDAO.PlanSolveTime + " = '')");

            return this;
        }

        public Criteria andPlanSolveTimeEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.PlanSolveTime + " = ",
                value, "planSolveTime");

            return this;
        }

        public Criteria andPlanSolveTimeEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.PlanSolveTime);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPlanSolveTimeEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.PlanSolveTime + " = ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andPlanSolveTimeNotEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.PlanSolveTime + " <>",
                value, "planSolveTime");

            return this;
        }

        public Criteria andPlanSolveTimeNotEqualToOrIsNull(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.PlanSolveTime +
                " is null OR " + IProductIssueDAO.PlanSolveTime + " <>", value,
                "planSolveTime");

            return this;
        }

        public Criteria andPlanSolveTimeNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.PlanSolveTime);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPlanSolveTimeNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.PlanSolveTime + " <> ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andPlanSolveTimeGreaterThan(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.PlanSolveTime + " >",
                value, "planSolveTime");

            return this;
        }

        public Criteria andPlanSolveTimeGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.PlanSolveTime);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPlanSolveTimeGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.PlanSolveTime + " > ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andPlanSolveTimeGreaterThanOrEqualTo(
            java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.PlanSolveTime + " >=",
                value, "planSolveTime");

            return this;
        }

        public Criteria andPlanSolveTimeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.PlanSolveTime);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPlanSolveTimeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.PlanSolveTime + " >= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andPlanSolveTimeLessThan(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.PlanSolveTime + " <",
                value, "planSolveTime");

            return this;
        }

        public Criteria andPlanSolveTimeLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.PlanSolveTime);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPlanSolveTimeLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.PlanSolveTime + " < ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andPlanSolveTimeLessThanOrEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.PlanSolveTime + " <=",
                value, "planSolveTime");

            return this;
        }

        public Criteria andPlanSolveTimeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.PlanSolveTime);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPlanSolveTimeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.PlanSolveTime + " <= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andPlanSolveTimeIn(List<java.util.Date> values) {
            if (values.size() == 1) {
                return andPlanSolveTimeEqualTo(values.get(0));
            } else {
                addCriterionForJDBCDate(IProductIssueDAO.PlanSolveTime + " in",
                    values, "planSolveTime");

                return this;
            }
        }

        public Criteria andPlanSolveTimeNotIn(List<java.util.Date> values) {
            if (values.size() == 1) {
                return andPlanSolveTimeNotEqualTo(values.get(0));
            } else {
                addCriterionForJDBCDate(IProductIssueDAO.PlanSolveTime +
                    " not in", values, "planSolveTime");

                return this;
            }
        }

        public Criteria andPlanSolveTimeIn(java.util.Date[] values) {
            if (values.length == 1) {
                return andPlanSolveTimeEqualTo(values[0]);
            } else {
                addCriterionForJDBCDate(IProductIssueDAO.PlanSolveTime + " in",
                    Arrays.asList(values), "planSolveTime");

                return this;
            }
        }

        public Criteria andPlanSolveTimeNotIn(java.util.Date[] values) {
            if (values.length == 1) {
                return andPlanSolveTimeNotEqualTo(values[0]);
            } else {
                addCriterionForJDBCDate(IProductIssueDAO.PlanSolveTime +
                    " not in", Arrays.asList(values), "planSolveTime");

                return this;
            }
        }

        public Criteria andPlanSolveTimeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.PlanSolveTime + " in ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andPlanSolveTimeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.PlanSolveTime + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPlanSolveTimeBetween(java.util.Date value1,
            java.util.Date value2) {
            addCriterionForJDBCDate(IProductIssueDAO.PlanSolveTime +
                " between", value1, value2, "planSolveTime");

            return this;
        }

        public Criteria andPlanSolveTimeNotBetween(java.util.Date value1,
            java.util.Date value2) {
            addCriterionForJDBCDate(IProductIssueDAO.PlanSolveTime +
                " not between", value1, value2, "planSolveTime");

            return this;
        }

        public Criteria andActualSolveTimeIsNull() {
            addCriterion(IProductIssueDAO.ActualSolveTime + " is null");

            return this;
        }

        public Criteria andActualSolveTimeIsNotNull() {
            addCriterion(IProductIssueDAO.ActualSolveTime + " is not null");

            return this;
        }

        public Criteria andActualSolveTimeIsNotEmpty() {
            addCriterion(IProductIssueDAO.ActualSolveTime +
                " is not null AND " + IProductIssueDAO.ActualSolveTime +
                " <> ''");

            return this;
        }

        public Criteria andActualSolveTimeIsEmpty() {
            addCriterion("(" + IProductIssueDAO.ActualSolveTime +
                " is null OR " + IProductIssueDAO.ActualSolveTime + " = '')");

            return this;
        }

        public Criteria andActualSolveTimeEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.ActualSolveTime + " = ",
                value, "actualSolveTime");

            return this;
        }

        public Criteria andActualSolveTimeEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.ActualSolveTime);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andActualSolveTimeEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.ActualSolveTime + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andActualSolveTimeNotEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.ActualSolveTime + " <>",
                value, "actualSolveTime");

            return this;
        }

        public Criteria andActualSolveTimeNotEqualToOrIsNull(
            java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.ActualSolveTime +
                " is null OR " + IProductIssueDAO.ActualSolveTime + " <>",
                value, "actualSolveTime");

            return this;
        }

        public Criteria andActualSolveTimeNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.ActualSolveTime);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andActualSolveTimeNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.ActualSolveTime + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andActualSolveTimeGreaterThan(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.ActualSolveTime + " >",
                value, "actualSolveTime");

            return this;
        }

        public Criteria andActualSolveTimeGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.ActualSolveTime);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andActualSolveTimeGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.ActualSolveTime + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andActualSolveTimeGreaterThanOrEqualTo(
            java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.ActualSolveTime + " >=",
                value, "actualSolveTime");

            return this;
        }

        public Criteria andActualSolveTimeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.ActualSolveTime);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andActualSolveTimeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.ActualSolveTime + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andActualSolveTimeLessThan(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.ActualSolveTime + " <",
                value, "actualSolveTime");

            return this;
        }

        public Criteria andActualSolveTimeLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.ActualSolveTime);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andActualSolveTimeLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.ActualSolveTime + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andActualSolveTimeLessThanOrEqualTo(
            java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.ActualSolveTime + " <=",
                value, "actualSolveTime");

            return this;
        }

        public Criteria andActualSolveTimeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.ActualSolveTime);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andActualSolveTimeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.ActualSolveTime + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andActualSolveTimeIn(List<java.util.Date> values) {
            if (values.size() == 1) {
                return andActualSolveTimeEqualTo(values.get(0));
            } else {
                addCriterionForJDBCDate(IProductIssueDAO.ActualSolveTime +
                    " in", values, "actualSolveTime");

                return this;
            }
        }

        public Criteria andActualSolveTimeNotIn(List<java.util.Date> values) {
            if (values.size() == 1) {
                return andActualSolveTimeNotEqualTo(values.get(0));
            } else {
                addCriterionForJDBCDate(IProductIssueDAO.ActualSolveTime +
                    " not in", values, "actualSolveTime");

                return this;
            }
        }

        public Criteria andActualSolveTimeIn(java.util.Date[] values) {
            if (values.length == 1) {
                return andActualSolveTimeEqualTo(values[0]);
            } else {
                addCriterionForJDBCDate(IProductIssueDAO.ActualSolveTime +
                    " in", Arrays.asList(values), "actualSolveTime");

                return this;
            }
        }

        public Criteria andActualSolveTimeNotIn(java.util.Date[] values) {
            if (values.length == 1) {
                return andActualSolveTimeNotEqualTo(values[0]);
            } else {
                addCriterionForJDBCDate(IProductIssueDAO.ActualSolveTime +
                    " not in", Arrays.asList(values), "actualSolveTime");

                return this;
            }
        }

        public Criteria andActualSolveTimeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.ActualSolveTime + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andActualSolveTimeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.ActualSolveTime + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andActualSolveTimeBetween(java.util.Date value1,
            java.util.Date value2) {
            addCriterionForJDBCDate(IProductIssueDAO.ActualSolveTime +
                " between", value1, value2, "actualSolveTime");

            return this;
        }

        public Criteria andActualSolveTimeNotBetween(java.util.Date value1,
            java.util.Date value2) {
            addCriterionForJDBCDate(IProductIssueDAO.ActualSolveTime +
                " not between", value1, value2, "actualSolveTime");

            return this;
        }

        public Criteria andResolutionsIsNull() {
            addCriterion(IProductIssueDAO.Resolutions + " is null");

            return this;
        }

        public Criteria andResolutionsIsNotNull() {
            addCriterion(IProductIssueDAO.Resolutions + " is not null");

            return this;
        }

        public Criteria andResolutionsIsNotEmpty() {
            addCriterion(IProductIssueDAO.Resolutions + " is not null AND " +
                IProductIssueDAO.Resolutions + " <> ''");

            return this;
        }

        public Criteria andResolutionsIsEmpty() {
            addCriterion("(" + IProductIssueDAO.Resolutions + " is null OR " +
                IProductIssueDAO.Resolutions + " = '')");

            return this;
        }

        public Criteria andResolutionsEqualTo(String value) {
            addCriterion(IProductIssueDAO.Resolutions + " = ", value,
                "resolutions");

            return this;
        }

        public Criteria andResolutionsEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.Resolutions);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andResolutionsEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.Resolutions + " = ", subQueryBean, dao);

            return this;
        }

        public Criteria andResolutionsNotEqualTo(String value) {
            addCriterion(IProductIssueDAO.Resolutions + " <>", value,
                "resolutions");

            return this;
        }

        public Criteria andResolutionsNotEqualToOrIsNull(String value) {
            addCriterion(IProductIssueDAO.Resolutions + " is null OR " +
                IProductIssueDAO.Resolutions + " <>", value, "resolutions");

            return this;
        }

        public Criteria andResolutionsNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.Resolutions);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andResolutionsNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.Resolutions + " <> ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andResolutionsGreaterThan(String value) {
            addCriterion(IProductIssueDAO.Resolutions + " >", value,
                "resolutions");

            return this;
        }

        public Criteria andResolutionsGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.Resolutions);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andResolutionsGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.Resolutions + " > ", subQueryBean, dao);

            return this;
        }

        public Criteria andResolutionsGreaterThanOrEqualTo(String value) {
            addCriterion(IProductIssueDAO.Resolutions + " >=", value,
                "resolutions");

            return this;
        }

        public Criteria andResolutionsGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.Resolutions);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andResolutionsGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.Resolutions + " >= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andResolutionsLessThan(String value) {
            addCriterion(IProductIssueDAO.Resolutions + " <", value,
                "resolutions");

            return this;
        }

        public Criteria andResolutionsLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.Resolutions);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andResolutionsLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.Resolutions + " < ", subQueryBean, dao);

            return this;
        }

        public Criteria andResolutionsLessThanOrEqualTo(String value) {
            addCriterion(IProductIssueDAO.Resolutions + " <=", value,
                "resolutions");

            return this;
        }

        public Criteria andResolutionsLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.Resolutions);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andResolutionsLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.Resolutions + " <= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andResolutionsLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueDAO.Resolutions + " like",
                buffer.toString(), "resolutions");

            return this;
        }

        public Criteria andResolutionsNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueDAO.Resolutions + " not like",
                buffer.toString(), "resolutions");

            return this;
        }

        public Criteria andResolutionsIn(List<String> values) {
            if (values.size() == 1) {
                return andResolutionsEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.Resolutions + " in", values,
                    "resolutions");

                return this;
            }
        }

        public Criteria andResolutionsNotIn(List<String> values) {
            if (values.size() == 1) {
                return andResolutionsNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.Resolutions + " not in", values,
                    "resolutions");

                return this;
            }
        }

        public Criteria andResolutionsIn(String[] values) {
            if (values.length == 1) {
                return andResolutionsEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.Resolutions + " in",
                    Arrays.asList(values), "resolutions");

                return this;
            }
        }

        public Criteria andResolutionsNotIn(String[] values) {
            if (values.length == 1) {
                return andResolutionsNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.Resolutions + " not in",
                    Arrays.asList(values), "resolutions");

                return this;
            }
        }

        public Criteria andResolutionsIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.Resolutions + " in ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andResolutionsNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.Resolutions + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andResolutionsBetween(String value1, String value2) {
            addCriterion(IProductIssueDAO.Resolutions + " between", value1,
                value2, "resolutions");

            return this;
        }

        public Criteria andResolutionsNotBetween(String value1, String value2) {
            addCriterion(IProductIssueDAO.Resolutions + " not between", value1,
                value2, "resolutions");

            return this;
        }

        public Criteria andResolutionsRemarksIsNull() {
            addCriterion(IProductIssueDAO.ResolutionsRemarks + " is null");

            return this;
        }

        public Criteria andResolutionsRemarksIsNotNull() {
            addCriterion(IProductIssueDAO.ResolutionsRemarks + " is not null");

            return this;
        }

        public Criteria andResolutionsRemarksIsNotEmpty() {
            addCriterion(IProductIssueDAO.ResolutionsRemarks +
                " is not null AND " + IProductIssueDAO.ResolutionsRemarks +
                " <> ''");

            return this;
        }

        public Criteria andResolutionsRemarksIsEmpty() {
            addCriterion("(" + IProductIssueDAO.ResolutionsRemarks +
                " is null OR " + IProductIssueDAO.ResolutionsRemarks +
                " = '')");

            return this;
        }

        public Criteria andResolutionsRemarksEqualTo(String value) {
            addCriterion(IProductIssueDAO.ResolutionsRemarks + " = ", value,
                "resolutionsRemarks");

            return this;
        }

        public Criteria andResolutionsRemarksEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.ResolutionsRemarks);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andResolutionsRemarksEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.ResolutionsRemarks + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andResolutionsRemarksNotEqualTo(String value) {
            addCriterion(IProductIssueDAO.ResolutionsRemarks + " <>", value,
                "resolutionsRemarks");

            return this;
        }

        public Criteria andResolutionsRemarksNotEqualToOrIsNull(String value) {
            addCriterion(IProductIssueDAO.ResolutionsRemarks + " is null OR " +
                IProductIssueDAO.ResolutionsRemarks + " <>", value,
                "resolutionsRemarks");

            return this;
        }

        public Criteria andResolutionsRemarksNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.ResolutionsRemarks);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andResolutionsRemarksNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.ResolutionsRemarks + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andResolutionsRemarksGreaterThan(String value) {
            addCriterion(IProductIssueDAO.ResolutionsRemarks + " >", value,
                "resolutionsRemarks");

            return this;
        }

        public Criteria andResolutionsRemarksGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.ResolutionsRemarks);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andResolutionsRemarksGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.ResolutionsRemarks + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andResolutionsRemarksGreaterThanOrEqualTo(String value) {
            addCriterion(IProductIssueDAO.ResolutionsRemarks + " >=", value,
                "resolutionsRemarks");

            return this;
        }

        public Criteria andResolutionsRemarksGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.ResolutionsRemarks);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andResolutionsRemarksGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.ResolutionsRemarks + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andResolutionsRemarksLessThan(String value) {
            addCriterion(IProductIssueDAO.ResolutionsRemarks + " <", value,
                "resolutionsRemarks");

            return this;
        }

        public Criteria andResolutionsRemarksLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.ResolutionsRemarks);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andResolutionsRemarksLessThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.ResolutionsRemarks + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andResolutionsRemarksLessThanOrEqualTo(String value) {
            addCriterion(IProductIssueDAO.ResolutionsRemarks + " <=", value,
                "resolutionsRemarks");

            return this;
        }

        public Criteria andResolutionsRemarksLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.ResolutionsRemarks);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andResolutionsRemarksLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.ResolutionsRemarks + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andResolutionsRemarksLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueDAO.ResolutionsRemarks + " like",
                buffer.toString(), "resolutionsRemarks");

            return this;
        }

        public Criteria andResolutionsRemarksNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueDAO.ResolutionsRemarks + " not like",
                buffer.toString(), "resolutionsRemarks");

            return this;
        }

        public Criteria andResolutionsRemarksIn(List<String> values) {
            if (values.size() == 1) {
                return andResolutionsRemarksEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.ResolutionsRemarks + " in",
                    values, "resolutionsRemarks");

                return this;
            }
        }

        public Criteria andResolutionsRemarksNotIn(List<String> values) {
            if (values.size() == 1) {
                return andResolutionsRemarksNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.ResolutionsRemarks + " not in",
                    values, "resolutionsRemarks");

                return this;
            }
        }

        public Criteria andResolutionsRemarksIn(String[] values) {
            if (values.length == 1) {
                return andResolutionsRemarksEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.ResolutionsRemarks + " in",
                    Arrays.asList(values), "resolutionsRemarks");

                return this;
            }
        }

        public Criteria andResolutionsRemarksNotIn(String[] values) {
            if (values.length == 1) {
                return andResolutionsRemarksNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.ResolutionsRemarks + " not in",
                    Arrays.asList(values), "resolutionsRemarks");

                return this;
            }
        }

        public Criteria andResolutionsRemarksIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.ResolutionsRemarks + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andResolutionsRemarksNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.ResolutionsRemarks + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andResolutionsRemarksBetween(String value1,
            String value2) {
            addCriterion(IProductIssueDAO.ResolutionsRemarks + " between",
                value1, value2, "resolutionsRemarks");

            return this;
        }

        public Criteria andResolutionsRemarksNotBetween(String value1,
            String value2) {
            addCriterion(IProductIssueDAO.ResolutionsRemarks + " not between",
                value1, value2, "resolutionsRemarks");

            return this;
        }

        public Criteria andLastUpdateTimeIsNull() {
            addCriterion(IProductIssueDAO.LastUpdateTime + " is null");

            return this;
        }

        public Criteria andLastUpdateTimeIsNotNull() {
            addCriterion(IProductIssueDAO.LastUpdateTime + " is not null");

            return this;
        }

        public Criteria andLastUpdateTimeIsNotEmpty() {
            addCriterion(IProductIssueDAO.LastUpdateTime + " is not null AND " +
                IProductIssueDAO.LastUpdateTime + " <> ''");

            return this;
        }

        public Criteria andLastUpdateTimeIsEmpty() {
            addCriterion("(" + IProductIssueDAO.LastUpdateTime +
                " is null OR " + IProductIssueDAO.LastUpdateTime + " = '')");

            return this;
        }

        public Criteria andLastUpdateTimeEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.LastUpdateTime + " = ",
                value, "lastUpdateTime");

            return this;
        }

        public Criteria andLastUpdateTimeEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.LastUpdateTime);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastUpdateTimeEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.LastUpdateTime + " = ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andLastUpdateTimeNotEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.LastUpdateTime + " <>",
                value, "lastUpdateTime");

            return this;
        }

        public Criteria andLastUpdateTimeNotEqualToOrIsNull(
            java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.LastUpdateTime +
                " is null OR " + IProductIssueDAO.LastUpdateTime + " <>",
                value, "lastUpdateTime");

            return this;
        }

        public Criteria andLastUpdateTimeNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.LastUpdateTime);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastUpdateTimeNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.LastUpdateTime + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastUpdateTimeGreaterThan(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.LastUpdateTime + " >",
                value, "lastUpdateTime");

            return this;
        }

        public Criteria andLastUpdateTimeGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.LastUpdateTime);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastUpdateTimeGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.LastUpdateTime + " > ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andLastUpdateTimeGreaterThanOrEqualTo(
            java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.LastUpdateTime + " >=",
                value, "lastUpdateTime");

            return this;
        }

        public Criteria andLastUpdateTimeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.LastUpdateTime);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastUpdateTimeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.LastUpdateTime + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastUpdateTimeLessThan(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.LastUpdateTime + " <",
                value, "lastUpdateTime");

            return this;
        }

        public Criteria andLastUpdateTimeLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.LastUpdateTime);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastUpdateTimeLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.LastUpdateTime + " < ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andLastUpdateTimeLessThanOrEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.LastUpdateTime + " <=",
                value, "lastUpdateTime");

            return this;
        }

        public Criteria andLastUpdateTimeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.LastUpdateTime);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastUpdateTimeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.LastUpdateTime + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastUpdateTimeIn(List<java.util.Date> values) {
            if (values.size() == 1) {
                return andLastUpdateTimeEqualTo(values.get(0));
            } else {
                addCriterionForJDBCDate(IProductIssueDAO.LastUpdateTime +
                    " in", values, "lastUpdateTime");

                return this;
            }
        }

        public Criteria andLastUpdateTimeNotIn(List<java.util.Date> values) {
            if (values.size() == 1) {
                return andLastUpdateTimeNotEqualTo(values.get(0));
            } else {
                addCriterionForJDBCDate(IProductIssueDAO.LastUpdateTime +
                    " not in", values, "lastUpdateTime");

                return this;
            }
        }

        public Criteria andLastUpdateTimeIn(java.util.Date[] values) {
            if (values.length == 1) {
                return andLastUpdateTimeEqualTo(values[0]);
            } else {
                addCriterionForJDBCDate(IProductIssueDAO.LastUpdateTime +
                    " in", Arrays.asList(values), "lastUpdateTime");

                return this;
            }
        }

        public Criteria andLastUpdateTimeNotIn(java.util.Date[] values) {
            if (values.length == 1) {
                return andLastUpdateTimeNotEqualTo(values[0]);
            } else {
                addCriterionForJDBCDate(IProductIssueDAO.LastUpdateTime +
                    " not in", Arrays.asList(values), "lastUpdateTime");

                return this;
            }
        }

        public Criteria andLastUpdateTimeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.LastUpdateTime + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastUpdateTimeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.LastUpdateTime + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastUpdateTimeBetween(java.util.Date value1,
            java.util.Date value2) {
            addCriterionForJDBCDate(IProductIssueDAO.LastUpdateTime +
                " between", value1, value2, "lastUpdateTime");

            return this;
        }

        public Criteria andLastUpdateTimeNotBetween(java.util.Date value1,
            java.util.Date value2) {
            addCriterionForJDBCDate(IProductIssueDAO.LastUpdateTime +
                " not between", value1, value2, "lastUpdateTime");

            return this;
        }

        public Criteria andLastUpdateUserIdIsNull() {
            addCriterion(IProductIssueDAO.LastUpdateUserId + " is null");

            return this;
        }

        public Criteria andLastUpdateUserIdIsNotNull() {
            addCriterion(IProductIssueDAO.LastUpdateUserId + " is not null");

            return this;
        }

        public Criteria andLastUpdateUserIdIsNotEmpty() {
            addCriterion(IProductIssueDAO.LastUpdateUserId +
                " is not null AND " + IProductIssueDAO.LastUpdateUserId +
                " <> ''");

            return this;
        }

        public Criteria andLastUpdateUserIdIsEmpty() {
            addCriterion("(" + IProductIssueDAO.LastUpdateUserId +
                " is null OR " + IProductIssueDAO.LastUpdateUserId + " = '')");

            return this;
        }

        public Criteria andLastUpdateUserIdEqualTo(long value) {
            return andLastUpdateUserIdEqualTo(Long.valueOf(value));
        }

        public Criteria andLastUpdateUserIdEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueDAO.LastUpdateUserId + " = ", value,
                "lastUpdateUserId");

            return this;
        }

        public Criteria andLastUpdateUserIdEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.LastUpdateUserId);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastUpdateUserIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.LastUpdateUserId + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastUpdateUserIdNotEqualTo(long value) {
            return andLastUpdateUserIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andLastUpdateUserIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueDAO.LastUpdateUserId + " <>", value,
                "lastUpdateUserId");

            return this;
        }

        public Criteria andLastUpdateUserIdNotEqualToOrIsNull(long value) {
            return andLastUpdateUserIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andLastUpdateUserIdNotEqualToOrIsNull(
            java.lang.Long value) {
            addCriterion(IProductIssueDAO.LastUpdateUserId + " is null OR " +
                IProductIssueDAO.LastUpdateUserId + " <>", value,
                "lastUpdateUserId");

            return this;
        }

        public Criteria andLastUpdateUserIdNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.LastUpdateUserId);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastUpdateUserIdNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.LastUpdateUserId + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastUpdateUserIdGreaterThan(long value) {
            return andLastUpdateUserIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andLastUpdateUserIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductIssueDAO.LastUpdateUserId + " >", value,
                "lastUpdateUserId");

            return this;
        }

        public Criteria andLastUpdateUserIdGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.LastUpdateUserId);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastUpdateUserIdGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.LastUpdateUserId + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastUpdateUserIdGreaterThanOrEqualTo(long value) {
            return andLastUpdateUserIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andLastUpdateUserIdGreaterThanOrEqualTo(
            java.lang.Long value) {
            addCriterion(IProductIssueDAO.LastUpdateUserId + " >=", value,
                "lastUpdateUserId");

            return this;
        }

        public Criteria andLastUpdateUserIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.LastUpdateUserId);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastUpdateUserIdGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.LastUpdateUserId + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastUpdateUserIdLessThan(long value) {
            return andLastUpdateUserIdLessThan(Long.valueOf(value));
        }

        public Criteria andLastUpdateUserIdLessThan(java.lang.Long value) {
            addCriterion(IProductIssueDAO.LastUpdateUserId + " <", value,
                "lastUpdateUserId");

            return this;
        }

        public Criteria andLastUpdateUserIdLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.LastUpdateUserId);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastUpdateUserIdLessThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.LastUpdateUserId + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastUpdateUserIdLessThanOrEqualTo(long value) {
            return andLastUpdateUserIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andLastUpdateUserIdLessThanOrEqualTo(
            java.lang.Long value) {
            addCriterion(IProductIssueDAO.LastUpdateUserId + " <=", value,
                "lastUpdateUserId");

            return this;
        }

        public Criteria andLastUpdateUserIdLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.LastUpdateUserId);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastUpdateUserIdLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.LastUpdateUserId + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastUpdateUserIdIn(long[] values) {
            if (values.length == 1) {
                return andLastUpdateUserIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductIssueDAO.LastUpdateUserId + " in", values,
                    "lastUpdateUserId");

                return this;
            }
        }

        public Criteria andLastUpdateUserIdNotIn(long[] values) {
            if (values.length == 1) {
                return andLastUpdateUserIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductIssueDAO.LastUpdateUserId + " not in",
                    values, "lastUpdateUserId");

                return this;
            }
        }

        public Criteria andLastUpdateUserIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andLastUpdateUserIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.LastUpdateUserId + " in", values,
                    "lastUpdateUserId");

                return this;
            }
        }

        public Criteria andLastUpdateUserIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andLastUpdateUserIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.LastUpdateUserId + " not in",
                    values, "lastUpdateUserId");

                return this;
            }
        }

        public Criteria andLastUpdateUserIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andLastUpdateUserIdEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.LastUpdateUserId + " in",
                    Arrays.asList(values), "lastUpdateUserId");

                return this;
            }
        }

        public Criteria andLastUpdateUserIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andLastUpdateUserIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.LastUpdateUserId + " not in",
                    Arrays.asList(values), "lastUpdateUserId");

                return this;
            }
        }

        public Criteria andLastUpdateUserIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.LastUpdateUserId + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastUpdateUserIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.LastUpdateUserId + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastUpdateUserIdBetween(long value1, long value2) {
            addCriterion(IProductIssueDAO.LastUpdateUserId + " between",
                value1, value2, "lastUpdateUserId");

            return this;
        }

        public Criteria andLastUpdateUserIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductIssueDAO.LastUpdateUserId + " between",
                value1, value2, "lastUpdateUserId");

            return this;
        }

        public Criteria andLastUpdateUserIdNotBetween(long value1, long value2) {
            addCriterion(IProductIssueDAO.LastUpdateUserId + " not between",
                value1, value2, "lastUpdateUserId");

            return this;
        }

        public Criteria andLastUpdateUserIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductIssueDAO.LastUpdateUserId + " not between",
                value1, value2, "lastUpdateUserId");

            return this;
        }

        public Criteria andIssueNoteCountIsNull() {
            addCriterion(IProductIssueDAO.IssueNoteCount + " is null");

            return this;
        }

        public Criteria andIssueNoteCountIsNotNull() {
            addCriterion(IProductIssueDAO.IssueNoteCount + " is not null");

            return this;
        }

        public Criteria andIssueNoteCountIsNotEmpty() {
            addCriterion(IProductIssueDAO.IssueNoteCount + " is not null AND " +
                IProductIssueDAO.IssueNoteCount + " <> ''");

            return this;
        }

        public Criteria andIssueNoteCountIsEmpty() {
            addCriterion("(" + IProductIssueDAO.IssueNoteCount +
                " is null OR " + IProductIssueDAO.IssueNoteCount + " = '')");

            return this;
        }

        public Criteria andIssueNoteCountEqualTo(long value) {
            return andIssueNoteCountEqualTo(Long.valueOf(value));
        }

        public Criteria andIssueNoteCountEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueDAO.IssueNoteCount + " = ", value,
                "issueNoteCount");

            return this;
        }

        public Criteria andIssueNoteCountEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssueNoteCount);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueNoteCountEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueNoteCount + " = ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIssueNoteCountNotEqualTo(long value) {
            return andIssueNoteCountNotEqualTo(Long.valueOf(value));
        }

        public Criteria andIssueNoteCountNotEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueDAO.IssueNoteCount + " <>", value,
                "issueNoteCount");

            return this;
        }

        public Criteria andIssueNoteCountNotEqualToOrIsNull(long value) {
            return andIssueNoteCountNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andIssueNoteCountNotEqualToOrIsNull(
            java.lang.Long value) {
            addCriterion(IProductIssueDAO.IssueNoteCount + " is null OR " +
                IProductIssueDAO.IssueNoteCount + " <>", value, "issueNoteCount");

            return this;
        }

        public Criteria andIssueNoteCountNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssueNoteCount);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueNoteCountNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueNoteCount + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIssueNoteCountGreaterThan(long value) {
            return andIssueNoteCountGreaterThan(Long.valueOf(value));
        }

        public Criteria andIssueNoteCountGreaterThan(java.lang.Long value) {
            addCriterion(IProductIssueDAO.IssueNoteCount + " >", value,
                "issueNoteCount");

            return this;
        }

        public Criteria andIssueNoteCountGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssueNoteCount);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueNoteCountGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueNoteCount + " > ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIssueNoteCountGreaterThanOrEqualTo(long value) {
            return andIssueNoteCountGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andIssueNoteCountGreaterThanOrEqualTo(
            java.lang.Long value) {
            addCriterion(IProductIssueDAO.IssueNoteCount + " >=", value,
                "issueNoteCount");

            return this;
        }

        public Criteria andIssueNoteCountGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssueNoteCount);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueNoteCountGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueNoteCount + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIssueNoteCountLessThan(long value) {
            return andIssueNoteCountLessThan(Long.valueOf(value));
        }

        public Criteria andIssueNoteCountLessThan(java.lang.Long value) {
            addCriterion(IProductIssueDAO.IssueNoteCount + " <", value,
                "issueNoteCount");

            return this;
        }

        public Criteria andIssueNoteCountLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssueNoteCount);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueNoteCountLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueNoteCount + " < ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIssueNoteCountLessThanOrEqualTo(long value) {
            return andIssueNoteCountLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andIssueNoteCountLessThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueDAO.IssueNoteCount + " <=", value,
                "issueNoteCount");

            return this;
        }

        public Criteria andIssueNoteCountLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssueNoteCount);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueNoteCountLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueNoteCount + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIssueNoteCountIn(long[] values) {
            if (values.length == 1) {
                return andIssueNoteCountEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductIssueDAO.IssueNoteCount + " in", values,
                    "issueNoteCount");

                return this;
            }
        }

        public Criteria andIssueNoteCountNotIn(long[] values) {
            if (values.length == 1) {
                return andIssueNoteCountNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductIssueDAO.IssueNoteCount + " not in",
                    values, "issueNoteCount");

                return this;
            }
        }

        public Criteria andIssueNoteCountIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andIssueNoteCountEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.IssueNoteCount + " in", values,
                    "issueNoteCount");

                return this;
            }
        }

        public Criteria andIssueNoteCountNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andIssueNoteCountNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.IssueNoteCount + " not in",
                    values, "issueNoteCount");

                return this;
            }
        }

        public Criteria andIssueNoteCountIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andIssueNoteCountEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.IssueNoteCount + " in",
                    Arrays.asList(values), "issueNoteCount");

                return this;
            }
        }

        public Criteria andIssueNoteCountNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andIssueNoteCountNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.IssueNoteCount + " not in",
                    Arrays.asList(values), "issueNoteCount");

                return this;
            }
        }

        public Criteria andIssueNoteCountIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueNoteCount + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIssueNoteCountNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueNoteCount + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIssueNoteCountBetween(long value1, long value2) {
            addCriterion(IProductIssueDAO.IssueNoteCount + " between", value1,
                value2, "issueNoteCount");

            return this;
        }

        public Criteria andIssueNoteCountBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductIssueDAO.IssueNoteCount + " between", value1,
                value2, "issueNoteCount");

            return this;
        }

        public Criteria andIssueNoteCountNotBetween(long value1, long value2) {
            addCriterion(IProductIssueDAO.IssueNoteCount + " not between",
                value1, value2, "issueNoteCount");

            return this;
        }

        public Criteria andIssueNoteCountNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductIssueDAO.IssueNoteCount + " not between",
                value1, value2, "issueNoteCount");

            return this;
        }

        public Criteria andIssueAttachCountIsNull() {
            addCriterion(IProductIssueDAO.IssueAttachCount + " is null");

            return this;
        }

        public Criteria andIssueAttachCountIsNotNull() {
            addCriterion(IProductIssueDAO.IssueAttachCount + " is not null");

            return this;
        }

        public Criteria andIssueAttachCountIsNotEmpty() {
            addCriterion(IProductIssueDAO.IssueAttachCount +
                " is not null AND " + IProductIssueDAO.IssueAttachCount +
                " <> ''");

            return this;
        }

        public Criteria andIssueAttachCountIsEmpty() {
            addCriterion("(" + IProductIssueDAO.IssueAttachCount +
                " is null OR " + IProductIssueDAO.IssueAttachCount + " = '')");

            return this;
        }

        public Criteria andIssueAttachCountEqualTo(long value) {
            return andIssueAttachCountEqualTo(Long.valueOf(value));
        }

        public Criteria andIssueAttachCountEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueDAO.IssueAttachCount + " = ", value,
                "issueAttachCount");

            return this;
        }

        public Criteria andIssueAttachCountEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssueAttachCount);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueAttachCountEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueAttachCount + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIssueAttachCountNotEqualTo(long value) {
            return andIssueAttachCountNotEqualTo(Long.valueOf(value));
        }

        public Criteria andIssueAttachCountNotEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueDAO.IssueAttachCount + " <>", value,
                "issueAttachCount");

            return this;
        }

        public Criteria andIssueAttachCountNotEqualToOrIsNull(long value) {
            return andIssueAttachCountNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andIssueAttachCountNotEqualToOrIsNull(
            java.lang.Long value) {
            addCriterion(IProductIssueDAO.IssueAttachCount + " is null OR " +
                IProductIssueDAO.IssueAttachCount + " <>", value,
                "issueAttachCount");

            return this;
        }

        public Criteria andIssueAttachCountNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssueAttachCount);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueAttachCountNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueAttachCount + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIssueAttachCountGreaterThan(long value) {
            return andIssueAttachCountGreaterThan(Long.valueOf(value));
        }

        public Criteria andIssueAttachCountGreaterThan(java.lang.Long value) {
            addCriterion(IProductIssueDAO.IssueAttachCount + " >", value,
                "issueAttachCount");

            return this;
        }

        public Criteria andIssueAttachCountGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssueAttachCount);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueAttachCountGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueAttachCount + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIssueAttachCountGreaterThanOrEqualTo(long value) {
            return andIssueAttachCountGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andIssueAttachCountGreaterThanOrEqualTo(
            java.lang.Long value) {
            addCriterion(IProductIssueDAO.IssueAttachCount + " >=", value,
                "issueAttachCount");

            return this;
        }

        public Criteria andIssueAttachCountGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssueAttachCount);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueAttachCountGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueAttachCount + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIssueAttachCountLessThan(long value) {
            return andIssueAttachCountLessThan(Long.valueOf(value));
        }

        public Criteria andIssueAttachCountLessThan(java.lang.Long value) {
            addCriterion(IProductIssueDAO.IssueAttachCount + " <", value,
                "issueAttachCount");

            return this;
        }

        public Criteria andIssueAttachCountLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssueAttachCount);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueAttachCountLessThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueAttachCount + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIssueAttachCountLessThanOrEqualTo(long value) {
            return andIssueAttachCountLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andIssueAttachCountLessThanOrEqualTo(
            java.lang.Long value) {
            addCriterion(IProductIssueDAO.IssueAttachCount + " <=", value,
                "issueAttachCount");

            return this;
        }

        public Criteria andIssueAttachCountLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.IssueAttachCount);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIssueAttachCountLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueAttachCount + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIssueAttachCountIn(long[] values) {
            if (values.length == 1) {
                return andIssueAttachCountEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductIssueDAO.IssueAttachCount + " in", values,
                    "issueAttachCount");

                return this;
            }
        }

        public Criteria andIssueAttachCountNotIn(long[] values) {
            if (values.length == 1) {
                return andIssueAttachCountNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductIssueDAO.IssueAttachCount + " not in",
                    values, "issueAttachCount");

                return this;
            }
        }

        public Criteria andIssueAttachCountIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andIssueAttachCountEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.IssueAttachCount + " in", values,
                    "issueAttachCount");

                return this;
            }
        }

        public Criteria andIssueAttachCountNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andIssueAttachCountNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.IssueAttachCount + " not in",
                    values, "issueAttachCount");

                return this;
            }
        }

        public Criteria andIssueAttachCountIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andIssueAttachCountEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.IssueAttachCount + " in",
                    Arrays.asList(values), "issueAttachCount");

                return this;
            }
        }

        public Criteria andIssueAttachCountNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andIssueAttachCountNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.IssueAttachCount + " not in",
                    Arrays.asList(values), "issueAttachCount");

                return this;
            }
        }

        public Criteria andIssueAttachCountIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueAttachCount + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIssueAttachCountNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.IssueAttachCount + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIssueAttachCountBetween(long value1, long value2) {
            addCriterion(IProductIssueDAO.IssueAttachCount + " between",
                value1, value2, "issueAttachCount");

            return this;
        }

        public Criteria andIssueAttachCountBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductIssueDAO.IssueAttachCount + " between",
                value1, value2, "issueAttachCount");

            return this;
        }

        public Criteria andIssueAttachCountNotBetween(long value1, long value2) {
            addCriterion(IProductIssueDAO.IssueAttachCount + " not between",
                value1, value2, "issueAttachCount");

            return this;
        }

        public Criteria andIssueAttachCountNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductIssueDAO.IssueAttachCount + " not between",
                value1, value2, "issueAttachCount");

            return this;
        }

        public Criteria andStatusIsNull() {
            addCriterion(IProductIssueDAO.Status + " is null");

            return this;
        }

        public Criteria andStatusIsNotNull() {
            addCriterion(IProductIssueDAO.Status + " is not null");

            return this;
        }

        public Criteria andStatusIsNotEmpty() {
            addCriterion(IProductIssueDAO.Status + " is not null AND " +
                IProductIssueDAO.Status + " <> ''");

            return this;
        }

        public Criteria andStatusIsEmpty() {
            addCriterion("(" + IProductIssueDAO.Status + " is null OR " +
                IProductIssueDAO.Status + " = '')");

            return this;
        }

        public Criteria andStatusEqualTo(String value) {
            addCriterion(IProductIssueDAO.Status + " = ", value, "status");

            return this;
        }

        public Criteria andStatusEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.Status);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.Status + " = ", subQueryBean, dao);

            return this;
        }

        public Criteria andStatusNotEqualTo(String value) {
            addCriterion(IProductIssueDAO.Status + " <>", value, "status");

            return this;
        }

        public Criteria andStatusNotEqualToOrIsNull(String value) {
            addCriterion(IProductIssueDAO.Status + " is null OR " +
                IProductIssueDAO.Status + " <>", value, "status");

            return this;
        }

        public Criteria andStatusNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.Status);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.Status + " <> ", subQueryBean, dao);

            return this;
        }

        public Criteria andStatusGreaterThan(String value) {
            addCriterion(IProductIssueDAO.Status + " >", value, "status");

            return this;
        }

        public Criteria andStatusGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.Status);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.Status + " > ", subQueryBean, dao);

            return this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(String value) {
            addCriterion(IProductIssueDAO.Status + " >=", value, "status");

            return this;
        }

        public Criteria andStatusGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.Status);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.Status + " >= ", subQueryBean, dao);

            return this;
        }

        public Criteria andStatusLessThan(String value) {
            addCriterion(IProductIssueDAO.Status + " <", value, "status");

            return this;
        }

        public Criteria andStatusLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.Status);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.Status + " < ", subQueryBean, dao);

            return this;
        }

        public Criteria andStatusLessThanOrEqualTo(String value) {
            addCriterion(IProductIssueDAO.Status + " <=", value, "status");

            return this;
        }

        public Criteria andStatusLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.Status);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusLessThanOrEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.Status + " <= ", subQueryBean, dao);

            return this;
        }

        public Criteria andStatusLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueDAO.Status + " like", buffer.toString(),
                "status");

            return this;
        }

        public Criteria andStatusNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueDAO.Status + " not like",
                buffer.toString(), "status");

            return this;
        }

        public Criteria andStatusIn(List<String> values) {
            if (values.size() == 1) {
                return andStatusEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.Status + " in", values, "status");

                return this;
            }
        }

        public Criteria andStatusNotIn(List<String> values) {
            if (values.size() == 1) {
                return andStatusNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.Status + " not in", values,
                    "status");

                return this;
            }
        }

        public Criteria andStatusIn(String[] values) {
            if (values.length == 1) {
                return andStatusEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.Status + " in",
                    Arrays.asList(values), "status");

                return this;
            }
        }

        public Criteria andStatusNotIn(String[] values) {
            if (values.length == 1) {
                return andStatusNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.Status + " not in",
                    Arrays.asList(values), "status");

                return this;
            }
        }

        public Criteria andStatusIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.Status + " in ", subQueryBean, dao);

            return this;
        }

        public Criteria andStatusNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.Status + " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andStatusBetween(String value1, String value2) {
            addCriterion(IProductIssueDAO.Status + " between", value1, value2,
                "status");

            return this;
        }

        public Criteria andStatusNotBetween(String value1, String value2) {
            addCriterion(IProductIssueDAO.Status + " not between", value1,
                value2, "status");

            return this;
        }

        public Criteria andRemarksIsNull() {
            addCriterion(IProductIssueDAO.Remarks + " is null");

            return this;
        }

        public Criteria andRemarksIsNotNull() {
            addCriterion(IProductIssueDAO.Remarks + " is not null");

            return this;
        }

        public Criteria andRemarksIsNotEmpty() {
            addCriterion(IProductIssueDAO.Remarks + " is not null AND " +
                IProductIssueDAO.Remarks + " <> ''");

            return this;
        }

        public Criteria andRemarksIsEmpty() {
            addCriterion("(" + IProductIssueDAO.Remarks + " is null OR " +
                IProductIssueDAO.Remarks + " = '')");

            return this;
        }

        public Criteria andRemarksEqualTo(String value) {
            addCriterion(IProductIssueDAO.Remarks + " = ", value, "remarks");

            return this;
        }

        public Criteria andRemarksEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.Remarks);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.Remarks + " = ", subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksNotEqualTo(String value) {
            addCriterion(IProductIssueDAO.Remarks + " <>", value, "remarks");

            return this;
        }

        public Criteria andRemarksNotEqualToOrIsNull(String value) {
            addCriterion(IProductIssueDAO.Remarks + " is null OR " +
                IProductIssueDAO.Remarks + " <>", value, "remarks");

            return this;
        }

        public Criteria andRemarksNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.Remarks);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.Remarks + " <> ", subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksGreaterThan(String value) {
            addCriterion(IProductIssueDAO.Remarks + " >", value, "remarks");

            return this;
        }

        public Criteria andRemarksGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.Remarks);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.Remarks + " > ", subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksGreaterThanOrEqualTo(String value) {
            addCriterion(IProductIssueDAO.Remarks + " >=", value, "remarks");

            return this;
        }

        public Criteria andRemarksGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.Remarks);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.Remarks + " >= ", subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksLessThan(String value) {
            addCriterion(IProductIssueDAO.Remarks + " <", value, "remarks");

            return this;
        }

        public Criteria andRemarksLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.Remarks);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.Remarks + " < ", subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksLessThanOrEqualTo(String value) {
            addCriterion(IProductIssueDAO.Remarks + " <=", value, "remarks");

            return this;
        }

        public Criteria andRemarksLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.Remarks);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.Remarks + " <= ", subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueDAO.Remarks + " like", buffer.toString(),
                "remarks");

            return this;
        }

        public Criteria andRemarksNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueDAO.Remarks + " not like",
                buffer.toString(), "remarks");

            return this;
        }

        public Criteria andRemarksIn(List<String> values) {
            if (values.size() == 1) {
                return andRemarksEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.Remarks + " in", values, "remarks");

                return this;
            }
        }

        public Criteria andRemarksNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRemarksNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.Remarks + " not in", values,
                    "remarks");

                return this;
            }
        }

        public Criteria andRemarksIn(String[] values) {
            if (values.length == 1) {
                return andRemarksEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.Remarks + " in",
                    Arrays.asList(values), "remarks");

                return this;
            }
        }

        public Criteria andRemarksNotIn(String[] values) {
            if (values.length == 1) {
                return andRemarksNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.Remarks + " not in",
                    Arrays.asList(values), "remarks");

                return this;
            }
        }

        public Criteria andRemarksIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.Remarks + " in ", subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.Remarks + " not in ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andRemarksBetween(String value1, String value2) {
            addCriterion(IProductIssueDAO.Remarks + " between", value1, value2,
                "remarks");

            return this;
        }

        public Criteria andRemarksNotBetween(String value1, String value2) {
            addCriterion(IProductIssueDAO.Remarks + " not between", value1,
                value2, "remarks");

            return this;
        }

        public Criteria andCreatorIdIsNull() {
            addCriterion(IProductIssueDAO.CreatorId + " is null");

            return this;
        }

        public Criteria andCreatorIdIsNotNull() {
            addCriterion(IProductIssueDAO.CreatorId + " is not null");

            return this;
        }

        public Criteria andCreatorIdIsNotEmpty() {
            addCriterion(IProductIssueDAO.CreatorId + " is not null AND " +
                IProductIssueDAO.CreatorId + " <> ''");

            return this;
        }

        public Criteria andCreatorIdIsEmpty() {
            addCriterion("(" + IProductIssueDAO.CreatorId + " is null OR " +
                IProductIssueDAO.CreatorId + " = '')");

            return this;
        }

        public Criteria andCreatorIdEqualTo(long value) {
            return andCreatorIdEqualTo(Long.valueOf(value));
        }

        public Criteria andCreatorIdEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueDAO.CreatorId + " = ", value, "creatorId");

            return this;
        }

        public Criteria andCreatorIdEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.CreatorId);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.CreatorId + " = ", subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorIdNotEqualTo(long value) {
            return andCreatorIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andCreatorIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueDAO.CreatorId + " <>", value, "creatorId");

            return this;
        }

        public Criteria andCreatorIdNotEqualToOrIsNull(long value) {
            return andCreatorIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andCreatorIdNotEqualToOrIsNull(java.lang.Long value) {
            addCriterion(IProductIssueDAO.CreatorId + " is null OR " +
                IProductIssueDAO.CreatorId + " <>", value, "creatorId");

            return this;
        }

        public Criteria andCreatorIdNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.CreatorId);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorIdNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.CreatorId + " <> ", subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorIdGreaterThan(long value) {
            return andCreatorIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andCreatorIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductIssueDAO.CreatorId + " >", value, "creatorId");

            return this;
        }

        public Criteria andCreatorIdGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.CreatorId);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorIdGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.CreatorId + " > ", subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorIdGreaterThanOrEqualTo(long value) {
            return andCreatorIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andCreatorIdGreaterThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueDAO.CreatorId + " >=", value, "creatorId");

            return this;
        }

        public Criteria andCreatorIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.CreatorId);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorIdGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.CreatorId + " >= ", subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorIdLessThan(long value) {
            return andCreatorIdLessThan(Long.valueOf(value));
        }

        public Criteria andCreatorIdLessThan(java.lang.Long value) {
            addCriterion(IProductIssueDAO.CreatorId + " <", value, "creatorId");

            return this;
        }

        public Criteria andCreatorIdLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.CreatorId);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorIdLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.CreatorId + " < ", subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorIdLessThanOrEqualTo(long value) {
            return andCreatorIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andCreatorIdLessThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueDAO.CreatorId + " <=", value, "creatorId");

            return this;
        }

        public Criteria andCreatorIdLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.CreatorId);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorIdLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.CreatorId + " <= ", subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorIdIn(long[] values) {
            if (values.length == 1) {
                return andCreatorIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductIssueDAO.CreatorId + " in", values,
                    "creatorId");

                return this;
            }
        }

        public Criteria andCreatorIdNotIn(long[] values) {
            if (values.length == 1) {
                return andCreatorIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductIssueDAO.CreatorId + " not in", values,
                    "creatorId");

                return this;
            }
        }

        public Criteria andCreatorIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andCreatorIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.CreatorId + " in", values,
                    "creatorId");

                return this;
            }
        }

        public Criteria andCreatorIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andCreatorIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.CreatorId + " not in", values,
                    "creatorId");

                return this;
            }
        }

        public Criteria andCreatorIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andCreatorIdEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.CreatorId + " in",
                    Arrays.asList(values), "creatorId");

                return this;
            }
        }

        public Criteria andCreatorIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andCreatorIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.CreatorId + " not in",
                    Arrays.asList(values), "creatorId");

                return this;
            }
        }

        public Criteria andCreatorIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.CreatorId + " in ", subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.CreatorId + " not in ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andCreatorIdBetween(long value1, long value2) {
            addCriterion(IProductIssueDAO.CreatorId + " between", value1,
                value2, "creatorId");

            return this;
        }

        public Criteria andCreatorIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductIssueDAO.CreatorId + " between", value1,
                value2, "creatorId");

            return this;
        }

        public Criteria andCreatorIdNotBetween(long value1, long value2) {
            addCriterion(IProductIssueDAO.CreatorId + " not between", value1,
                value2, "creatorId");

            return this;
        }

        public Criteria andCreatorIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductIssueDAO.CreatorId + " not between", value1,
                value2, "creatorId");

            return this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion(IProductIssueDAO.CreateTime + " is null");

            return this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion(IProductIssueDAO.CreateTime + " is not null");

            return this;
        }

        public Criteria andCreateTimeIsNotEmpty() {
            addCriterion(IProductIssueDAO.CreateTime + " is not null AND " +
                IProductIssueDAO.CreateTime + " <> ''");

            return this;
        }

        public Criteria andCreateTimeIsEmpty() {
            addCriterion("(" + IProductIssueDAO.CreateTime + " is null OR " +
                IProductIssueDAO.CreateTime + " = '')");

            return this;
        }

        public Criteria andCreateTimeEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.CreateTime + " = ", value,
                "createTime");

            return this;
        }

        public Criteria andCreateTimeEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.CreateTime);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreateTimeEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.CreateTime + " = ", subQueryBean, dao);

            return this;
        }

        public Criteria andCreateTimeNotEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.CreateTime + " <>", value,
                "createTime");

            return this;
        }

        public Criteria andCreateTimeNotEqualToOrIsNull(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.CreateTime +
                " is null OR " + IProductIssueDAO.CreateTime + " <>", value,
                "createTime");

            return this;
        }

        public Criteria andCreateTimeNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.CreateTime);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreateTimeNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.CreateTime + " <> ", subQueryBean, dao);

            return this;
        }

        public Criteria andCreateTimeGreaterThan(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.CreateTime + " >", value,
                "createTime");

            return this;
        }

        public Criteria andCreateTimeGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.CreateTime);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreateTimeGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.CreateTime + " > ", subQueryBean, dao);

            return this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.CreateTime + " >=", value,
                "createTime");

            return this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.CreateTime);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.CreateTime + " >= ", subQueryBean, dao);

            return this;
        }

        public Criteria andCreateTimeLessThan(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.CreateTime + " <", value,
                "createTime");

            return this;
        }

        public Criteria andCreateTimeLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.CreateTime);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreateTimeLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.CreateTime + " < ", subQueryBean, dao);

            return this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueDAO.CreateTime + " <=", value,
                "createTime");

            return this;
        }

        public Criteria andCreateTimeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.CreateTime);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.CreateTime + " <= ", subQueryBean, dao);

            return this;
        }

        public Criteria andCreateTimeIn(List<java.util.Date> values) {
            if (values.size() == 1) {
                return andCreateTimeEqualTo(values.get(0));
            } else {
                addCriterionForJDBCDate(IProductIssueDAO.CreateTime + " in",
                    values, "createTime");

                return this;
            }
        }

        public Criteria andCreateTimeNotIn(List<java.util.Date> values) {
            if (values.size() == 1) {
                return andCreateTimeNotEqualTo(values.get(0));
            } else {
                addCriterionForJDBCDate(IProductIssueDAO.CreateTime +
                    " not in", values, "createTime");

                return this;
            }
        }

        public Criteria andCreateTimeIn(java.util.Date[] values) {
            if (values.length == 1) {
                return andCreateTimeEqualTo(values[0]);
            } else {
                addCriterionForJDBCDate(IProductIssueDAO.CreateTime + " in",
                    Arrays.asList(values), "createTime");

                return this;
            }
        }

        public Criteria andCreateTimeNotIn(java.util.Date[] values) {
            if (values.length == 1) {
                return andCreateTimeNotEqualTo(values[0]);
            } else {
                addCriterionForJDBCDate(IProductIssueDAO.CreateTime +
                    " not in", Arrays.asList(values), "createTime");

                return this;
            }
        }

        public Criteria andCreateTimeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.CreateTime + " in ", subQueryBean, dao);

            return this;
        }

        public Criteria andCreateTimeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.CreateTime + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreateTimeBetween(java.util.Date value1,
            java.util.Date value2) {
            addCriterionForJDBCDate(IProductIssueDAO.CreateTime + " between",
                value1, value2, "createTime");

            return this;
        }

        public Criteria andCreateTimeNotBetween(java.util.Date value1,
            java.util.Date value2) {
            addCriterionForJDBCDate(IProductIssueDAO.CreateTime +
                " not between", value1, value2, "createTime");

            return this;
        }

        public Criteria andCreatorNameIsNull() {
            addCriterion(IProductIssueDAO.CreatorName + " is null");

            return this;
        }

        public Criteria andCreatorNameIsNotNull() {
            addCriterion(IProductIssueDAO.CreatorName + " is not null");

            return this;
        }

        public Criteria andCreatorNameIsNotEmpty() {
            addCriterion(IProductIssueDAO.CreatorName + " is not null AND " +
                IProductIssueDAO.CreatorName + " <> ''");

            return this;
        }

        public Criteria andCreatorNameIsEmpty() {
            addCriterion("(" + IProductIssueDAO.CreatorName + " is null OR " +
                IProductIssueDAO.CreatorName + " = '')");

            return this;
        }

        public Criteria andCreatorNameEqualTo(String value) {
            addCriterion(IProductIssueDAO.CreatorName + " = ", value,
                "creatorName");

            return this;
        }

        public Criteria andCreatorNameEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.CreatorName);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorNameEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.CreatorName + " = ", subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorNameNotEqualTo(String value) {
            addCriterion(IProductIssueDAO.CreatorName + " <>", value,
                "creatorName");

            return this;
        }

        public Criteria andCreatorNameNotEqualToOrIsNull(String value) {
            addCriterion(IProductIssueDAO.CreatorName + " is null OR " +
                IProductIssueDAO.CreatorName + " <>", value, "creatorName");

            return this;
        }

        public Criteria andCreatorNameNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.CreatorName);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorNameNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.CreatorName + " <> ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andCreatorNameGreaterThan(String value) {
            addCriterion(IProductIssueDAO.CreatorName + " >", value,
                "creatorName");

            return this;
        }

        public Criteria andCreatorNameGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.CreatorName);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorNameGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.CreatorName + " > ", subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorNameGreaterThanOrEqualTo(String value) {
            addCriterion(IProductIssueDAO.CreatorName + " >=", value,
                "creatorName");

            return this;
        }

        public Criteria andCreatorNameGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.CreatorName);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorNameGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.CreatorName + " >= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andCreatorNameLessThan(String value) {
            addCriterion(IProductIssueDAO.CreatorName + " <", value,
                "creatorName");

            return this;
        }

        public Criteria andCreatorNameLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.CreatorName);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorNameLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.CreatorName + " < ", subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorNameLessThanOrEqualTo(String value) {
            addCriterion(IProductIssueDAO.CreatorName + " <=", value,
                "creatorName");

            return this;
        }

        public Criteria andCreatorNameLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.CreatorName);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorNameLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.CreatorName + " <= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andCreatorNameLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueDAO.CreatorName + " like",
                buffer.toString(), "creatorName");

            return this;
        }

        public Criteria andCreatorNameNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueDAO.CreatorName + " not like",
                buffer.toString(), "creatorName");

            return this;
        }

        public Criteria andCreatorNameIn(List<String> values) {
            if (values.size() == 1) {
                return andCreatorNameEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.CreatorName + " in", values,
                    "creatorName");

                return this;
            }
        }

        public Criteria andCreatorNameNotIn(List<String> values) {
            if (values.size() == 1) {
                return andCreatorNameNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.CreatorName + " not in", values,
                    "creatorName");

                return this;
            }
        }

        public Criteria andCreatorNameIn(String[] values) {
            if (values.length == 1) {
                return andCreatorNameEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.CreatorName + " in",
                    Arrays.asList(values), "creatorName");

                return this;
            }
        }

        public Criteria andCreatorNameNotIn(String[] values) {
            if (values.length == 1) {
                return andCreatorNameNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.CreatorName + " not in",
                    Arrays.asList(values), "creatorName");

                return this;
            }
        }

        public Criteria andCreatorNameIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.CreatorName + " in ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andCreatorNameNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.CreatorName + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorNameBetween(String value1, String value2) {
            addCriterion(IProductIssueDAO.CreatorName + " between", value1,
                value2, "creatorName");

            return this;
        }

        public Criteria andCreatorNameNotBetween(String value1, String value2) {
            addCriterion(IProductIssueDAO.CreatorName + " not between", value1,
                value2, "creatorName");

            return this;
        }

        public Criteria andCreatorPhotoIsNull() {
            addCriterion(IProductIssueDAO.CreatorPhoto + " is null");

            return this;
        }

        public Criteria andCreatorPhotoIsNotNull() {
            addCriterion(IProductIssueDAO.CreatorPhoto + " is not null");

            return this;
        }

        public Criteria andCreatorPhotoIsNotEmpty() {
            addCriterion(IProductIssueDAO.CreatorPhoto + " is not null AND " +
                IProductIssueDAO.CreatorPhoto + " <> ''");

            return this;
        }

        public Criteria andCreatorPhotoIsEmpty() {
            addCriterion("(" + IProductIssueDAO.CreatorPhoto + " is null OR " +
                IProductIssueDAO.CreatorPhoto + " = '')");

            return this;
        }

        public Criteria andCreatorPhotoEqualTo(String value) {
            addCriterion(IProductIssueDAO.CreatorPhoto + " = ", value,
                "creatorPhoto");

            return this;
        }

        public Criteria andCreatorPhotoEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.CreatorPhoto);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorPhotoEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.CreatorPhoto + " = ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andCreatorPhotoNotEqualTo(String value) {
            addCriterion(IProductIssueDAO.CreatorPhoto + " <>", value,
                "creatorPhoto");

            return this;
        }

        public Criteria andCreatorPhotoNotEqualToOrIsNull(String value) {
            addCriterion(IProductIssueDAO.CreatorPhoto + " is null OR " +
                IProductIssueDAO.CreatorPhoto + " <>", value, "creatorPhoto");

            return this;
        }

        public Criteria andCreatorPhotoNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.CreatorPhoto);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorPhotoNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.CreatorPhoto + " <> ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andCreatorPhotoGreaterThan(String value) {
            addCriterion(IProductIssueDAO.CreatorPhoto + " >", value,
                "creatorPhoto");

            return this;
        }

        public Criteria andCreatorPhotoGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.CreatorPhoto);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorPhotoGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.CreatorPhoto + " > ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andCreatorPhotoGreaterThanOrEqualTo(String value) {
            addCriterion(IProductIssueDAO.CreatorPhoto + " >=", value,
                "creatorPhoto");

            return this;
        }

        public Criteria andCreatorPhotoGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.CreatorPhoto);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorPhotoGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.CreatorPhoto + " >= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andCreatorPhotoLessThan(String value) {
            addCriterion(IProductIssueDAO.CreatorPhoto + " <", value,
                "creatorPhoto");

            return this;
        }

        public Criteria andCreatorPhotoLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.CreatorPhoto);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorPhotoLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.CreatorPhoto + " < ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andCreatorPhotoLessThanOrEqualTo(String value) {
            addCriterion(IProductIssueDAO.CreatorPhoto + " <=", value,
                "creatorPhoto");

            return this;
        }

        public Criteria andCreatorPhotoLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueDAO.CreatorPhoto);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorPhotoLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.CreatorPhoto + " <= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andCreatorPhotoLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueDAO.CreatorPhoto + " like",
                buffer.toString(), "creatorPhoto");

            return this;
        }

        public Criteria andCreatorPhotoNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueDAO.CreatorPhoto + " not like",
                buffer.toString(), "creatorPhoto");

            return this;
        }

        public Criteria andCreatorPhotoIn(List<String> values) {
            if (values.size() == 1) {
                return andCreatorPhotoEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.CreatorPhoto + " in", values,
                    "creatorPhoto");

                return this;
            }
        }

        public Criteria andCreatorPhotoNotIn(List<String> values) {
            if (values.size() == 1) {
                return andCreatorPhotoNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueDAO.CreatorPhoto + " not in", values,
                    "creatorPhoto");

                return this;
            }
        }

        public Criteria andCreatorPhotoIn(String[] values) {
            if (values.length == 1) {
                return andCreatorPhotoEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.CreatorPhoto + " in",
                    Arrays.asList(values), "creatorPhoto");

                return this;
            }
        }

        public Criteria andCreatorPhotoNotIn(String[] values) {
            if (values.length == 1) {
                return andCreatorPhotoNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueDAO.CreatorPhoto + " not in",
                    Arrays.asList(values), "creatorPhoto");

                return this;
            }
        }

        public Criteria andCreatorPhotoIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.CreatorPhoto + " in ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andCreatorPhotoNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueDAO.CreatorPhoto + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorPhotoBetween(String value1, String value2) {
            addCriterion(IProductIssueDAO.CreatorPhoto + " between", value1,
                value2, "creatorPhoto");

            return this;
        }

        public Criteria andCreatorPhotoNotBetween(String value1, String value2) {
            addCriterion(IProductIssueDAO.CreatorPhoto + " not between",
                value1, value2, "creatorPhoto");

            return this;
        }
    }
}
